【问题标题】:DataReader to Linq'd query of Dictionary(String, Object)DataReader 到 Linq'd 查询 Dictionary(String, Object)
【发布时间】:2014-02-06 20:29:06
【问题描述】:

编译器为什么不这样:

        Dim AdDr As SqlDataReader = Addcommand.ExecuteReader()
        Dim query = From row In AdDr.Cast(Of Data.Common.DbDataRecord)() _
                    Select New With { _
                        .Items = New Dictionary(Of String, Object)( _
                            (From ii In Enumerable.Range(0, row.FieldCount) _
                             Select New DictionaryEntry(key:=row.GetName(ii), value:=row.GetValue(ii)))) _
                        }
        Dim rslt = query.ToList()

如果我想要的只是行的查询,第一部分工作得很好。但是,我真正想要的是一个查询,它提供 Dictionary(of String, Object) 的行,键是 FieldName,值是 DataItem。

【问题讨论】:

    标签: vb.net linq datareader


    【解决方案1】:

    目前IEnumerable 正在传递给Dictionary 的构造函数,这可能就是它所抱怨的。相反,您可以在IEnumerable 上致电ToDictionary() 以获取您的Dictionary。像这样的...

        Dim query = From row In AdDr.Cast(Of Data.Common.DbDataRecord)() _
                    Select New With { _
                        .Items =  _
                            (From ii In Enumerable.Range(0, row.FieldCount) _
                             Select New With { .Key =row.GetName(ii), .Value = row.GetValue(ii) } ).ToDictionary(Function (x) x.Key, Function(x) x.Value) _
                        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-03-01
      • 2013-05-15
      • 1970-01-01
      • 1970-01-01
      • 2018-01-25
      • 2014-10-22
      • 2012-05-13
      相关资源
      最近更新 更多