Запрос DataColumnCollection с помощью LINQ
-
04-07-2019 - |
Вопрос
Я пытаюсь выполнить простой запрос LINQ для свойства Columns объекта DataTable:
from c in myDataTable.Columns.AsQueryable()
select c.ColumnName
Тем не менее, я получаю следующее:
Не удалось найти реализацию шаблона запроса для типа источника «System.Linq.IQueryable». «Выбрать» не найдено. Рассмотрим явное указание типа переменной диапазона 'c'.
Как я могу заставить DataColumnCollection хорошо работать с LINQ?
Решение
Как насчет:
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 > Метод
статья MSDN.
С синтаксисом метода Linq:
var x = myDataTable.Columns.Cast<DataColumn>().Select(c => c.ColumnName);
Не связан с StackOverflow