2010-11-01 1 views
0

Я преобразовал System.Data.DataTable для ввода IEnumerable [Словарь [[string, object]] и назвал его myDataTable. Теперь, как читать каждую строку и ее значение с помощью linq?Как читать данные после преобразования из DataTable в IEnumerable <Dictionary <string, object >>?

dtReports = new myDataTable(e.Result);     

    foreach (myDataRow row in dtReports.Rows) 
    { 
     string group = row.GetType().GetProperty("Group").GetValue(row, null); 
    } 

Это не работает по какой-либо причине.

ответ

0

Предполагая, что "Группа" является имя столбца ...

Использование LINQ:

var listOfGroups = from row in myDataTable.AsEnumerable() 
        select row["Group"]; 

Или, используя методы расширения LINQ и лямбда:

var listOfGroups = myDataTable.AsEnumerable().Select(row => row["Group"]); 
+0

Я просто пытаюсь прочитать значения строк для определенного столбца .. Я думаю, что получил ответ .. вам просто нужно сказать, что пара.GetType(). GetProperty («Группа»). GetValue (пара, нуль) – Prog

+0

Вы используете отражение там, где это дорого, и я могу g uarantee вы без необходимости (и медленно). – SnickersAreMyFave

+0

Вы правы, используя отражение делает его медленным. Ваше решение с использованием Linq работает для меня .. Спасибо – Prog

Смежные вопросы