Querying DataColumnCollection with LINQ
-
04-07-2019 - |
Question
I'm trying to perform a simple LINQ query on the Columns property of a DataTable:
from c in myDataTable.Columns.AsQueryable()
select c.ColumnName
However, what I get is this:
Could not find an implementation of the query pattern for source type 'System.Linq.IQueryable'. 'Select' not found. Consider explicitly specifying the type of the range variable 'c'.
How can I get the DataColumnCollection to play nice with LINQ?
Solution
How about:
var x = from c in dt.Columns.Cast<DataColumn>()
select c.ColumnName;
OTHER TIPS
You could also use:
var x = from DataColumn c in myDataTable.Columns
select c.ColumnName
It will effectively do the same as Dave's code: "in a query expression, an explicitly typed iteration variable translates to an invocation of Cast(IEnumerable)", according to the Enumerable.Cast<TResult> Method
MSDN article.
With Linq Method Syntax:
var x = myDataTable.Columns.Cast<DataColumn>().Select(c => c.ColumnName);
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow