将动态DataTable转换为List <dictionary <string,string>&gt; </dictionary <string,string>

时间:2013-11-13 16:15:48

标签: c# dictionary datatable todictionary

我想要一种优雅的方式来获取像这样的DataTable:

enter image description here

然后把它变成:

List<Dictionary<string,string>> values = dataTable.ToDictionary();

列表中的每个字典对应一行。字典包含行的值,其中键是列名,值是列值。

该方法应支持动态列数和名称。

1 个答案:

答案 0 :(得分:12)

您需要将每一行转换为字典:

// Iterate through the rows...
table.AsEnumerable().Select(
    // ...then iterate through the columns...
    row => table.Columns.Cast<DataColumn>().ToDictionary(
        // ...and find the key value pairs for the dictionary
        column => column.ColumnName,    // Key
        column => row[column] as string // Value
    )
)