2013-11-13 2 views
3

Я хочу элегантный способ взять DataTable, как это:Включите динамический DataTable в список <Dictionary <String, String >>

enter image description here

И превратить его в:

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

Каждый словарь в списке соответствует строке. Словарь содержит значения строки, где ключ - это имя столбца, а значение - значение столбца.

Метод должен поддерживать динамический количество колонок и имен.

ответ

10

Вы должны включить каждую строку в словарь:

// 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 
    ) 
) 
+0

Великий ответ! Действительно помог мне с моим проектом. – IyaTaisho