Вопрос

Я пытаюсь выполнить простой запрос 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);
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top