我想将一个 DataTable 转换成一个 IEnumerable<>
类型的 Dictionary<string, object>
。我尝试了以下 LINQ 查询:
from DataRow row in ds.Tables[0].AsEnumerable()
let rowDictionary = new Dictionary<string, object>()
from DataColumn column in row.Table.Columns.Cast<DataColumn>()
select rowDictionary.Add(column.ColumnName, row[column]).ToArray();
但是我遇到了以下错误:
error CS1943: An expression of type
'System.Collections.Generic.IEnumerable<System.Data.DataColumn>' is not
allowed in a subsequent from clause in a query expression with source type
'System.Data.EnumerableRowCollection<AnonymousType#1>'. Type inference
failed in the call to 'SelectMany'.
我知道我可以使用循环来暴力解决这个问题,但似乎应该可以用 LINQ 来完成。非常感谢你们的任何帮助!
columns.Select
创建一个新对象,然后在该对象上调用.ToDictionary
,而不是直接调用.ToDictionary
? - palswim