Ответ 1
Как насчет:
var x = from c in dt.Columns.Cast<DataColumn>()
select c.ColumnName;
Я пытаюсь выполнить простой запрос 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> Method
Статья в MSDN.