Запрос DataColumnCollection с помощью LINQ



Я пытаюсь выполнить простой запрос LINQ для свойства Columns объекта DataTable:



from c in myDataTable.Columns.AsQueryable()
select c.ColumnName


однако, что я получаю это:




не может найти реализацию шаблона запроса для типа источника системы'.В LINQ.Интерфейс IQueryable'. 'Выберите' не найдены. Рассмотрим явное указание типа переменной диапазона 'c'.




Как я могу получить DataColumnCollection, чтобы играть хорошо с LINQ?

559   3  

3 ответов:

Как насчет:

var x = from c in dt.Columns.Cast<DataColumn>()
        select c.ColumnName;

вы также можете использовать:

var x = from DataColumn c in myDataTable.Columns
        select c.ColumnName

он будет эффективно делать то же самое, что и код Дейва: "в выражении запроса явно типизированная переменная итерации преобразуется в вызов Cast(IEnumerable)", согласно Enumerable.Cast<TResult> Method статья MSDN.

С Синтаксисом Метода Linq:

var x = myDataTable.Columns.Cast<DataColumn>().Select(c => c.ColumnName);

Comments

    Ничего не найдено.