2008-10-25 78 views
57

我想在一個DataTable的Columns屬性進行一個簡單的LINQ查詢:查詢DataColumnCollection與LINQ

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

然而,我所得到的是這樣的:

找不到一個源類型'System.Linq.IQueryable'的查詢模式的實現。 '選擇'未找到。考慮明確指定範圍變量'c'的類型。

我怎樣才能讓DataColumnCollection和LINQ一起玩呢?

回答

100

如何:

var x = from c in dt.Columns.Cast<DataColumn>() 
     select c.ColumnName; 
+2

@Dave:原因是什麼導致了這個問題?我們怎麼做Cast()? – 2009-03-13 17:20:20

12

您還可以使用:

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

這將有效地做同樣的戴維代碼:「在查詢表達式,顯式類型迭代變量轉化爲一個調用Cast(IEnumerable)「,根據Enumerable.Cast<TResult> Method MSDN文章。