2011-01-21 52 views
1

我似乎無法得到以下工作在C#中的LINQ查詢比數據行返回正確的類型

var results = (from DataRow row in myDataView.Table.Rows 
        group row by row["part"] into x 
        select new {x}).Distinct(); 

foreach(var x in results) 
{ 
doSomething(x["part"]); 
doSomethingElse(x["field2"]); 
} 

的問題似乎是,結果中包含「AnonymousType」的元素,我猜是的神器「組」。我如何才能使上述代碼正常工作?

+2

你如何期待它的工作? – 2011-01-21 14:20:09

+0

用於返回DataRow對象的結果。或者至少有一些方法可以輕鬆訪問結果的字段。 – user492922 2011-01-21 14:40:52

回答

2
new {x} 

這將創建一個anonimous類型與屬性的「x」,其中x對象將被存儲。這是短暫的語法:

new {x = x} // first x is property name 
你的情況

您應該簡單地選擇X:

var results = (from DataRow row in myDataView.Table.Rows 
        group row by row["part"] into x 
        select x).Distinct(); 

而且鮮明的()集團看起來怪怪的了。你什麼意思?