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

Я пытаюсь выполнить простой запрос LINQ 9X_asqueryable для свойства Columns таблицы DataTable:

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

Однако 9X_asqueryable я получаю следующее:

Не удалось найти реализацию 9X_datacolumncollection шаблона запроса для типа источника "System.Linq.IQueryable". «Выбрать» не 9X_datacolumncollection найдено. Рассмотрите возможность явного 9X_datacolumncollection указания типа переменной диапазона 'c'.

Как 9X_csharp заставить DataColumnCollection хорошо работать 9X_linq с LINQ?

83
0
3
Общее количество ответов: 3

Ответ #1

Ответ на вопрос: Запрос DataColumnCollection с помощью LINQ

Как насчет

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

9X_visual-c#

139
2

  • @Dave: Что в первую очередь вызывает эту п ...

Ответ #2

Ответ на вопрос: Запрос DataColumnCollection с помощью LINQ

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

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

Он будет фактически 9X_asqueryable делать то же самое, что и код Дейва: «в 9X_linq выражении запроса явно типизированная переменная 9X_linq итерации преобразуется в вызов Cast (IEnumerable)», согласно 9X_asqueryable статье Enumerable.Cast Method MSDN.

15
0

Ответ #3

Ответ на вопрос: Запрос DataColumnCollection с помощью LINQ

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

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

9X_asqueryable

12
0