将DataTable转换为Dictionary <string,string>,指定所涉及的列名,而不是使用foreach

时间:2016-07-27 13:37:16

标签: c# linq dictionary datatable ado.net

使用循环完全没有问题,但我想知道是否有内置的转换函数,当它们一起使用时,可以在ADO.NET中移动数据DataTable(包含多个两列)进入单行中的Dictionary<string,string>,其中带有键的列和带有值的列由名称而不是索引位置指定。

1 个答案:

答案 0 :(得分:1)

尚未对此进行测试,但请阅读文档:

IEnumerable<Dictionary<string, string>> dic =
     dataTable.Rows.OfType<DataRow>()
     .Select(row => dataTable.Columns.OfType<DataColumn>()
                    .ToDictionary(col => col.ColumnName, col => row[col] != null ? row[col].ToString() : null));

你要求一个单行:)