2008-11-14 43 views
1

我有一個要求,要從DataTable中提取行的不同子集,並且認爲LINQ2DataSets可能是一種有用而乾淨的方式來執行此操作,但似乎無法簡單地標識返回行從LINQ2DS查詢如下在LINQ2DataSet中指定返回行

var result = from r in fips.AsEnumerable() select 
r.Field<string>("FACILITY_PROCESS_SUB_GROUP_CODE"), 
r.Field<string>("PROCESS_SUB_GROUP_NAME"), 
r.Field<string>("... 

因爲我開始在第一個逗號後出現錯誤。

這是一個正確的假設,我將如何解決它以返回數據集中可以應用Distinct()方法的列的子集?

回答

4

你忘了新語句和字段名:

var result = from r 
    in fips.AsEnumerable() 
    select new 
    { 
     FacProcess = r.Field<string>("FACILITY_PROCESS_SUB_GROUP_CODE"), 
     GroupName = r.Field<string>("PROCESS_SUB_GROUP_NAME"), 
     Item3 = r.Field<string>("Item3") 
    }; 

您也可以明確地聲明,你要使用類型:

var result = from r 
    in fips.AsEnumerable() 
    select new MyType("InitClassParams") 
    { 
     FacProcess = r.Field<string>("FACILITY_PROCESS_SUB_GROUP_CODE"), 
     GroupName = r.Field<string>("PROCESS_SUB_GROUP_NAME"), 
     Item3 = r.Field<string>("Item3") 
    }; 

Scott Guthrie(VP開發等分,微軟)有關於LINQ的一些很好的信息(他談論LINQ to SQL,但大部分都適用)。

然後應用不同的條款:

var result = from r 
    in fips.AsEnumerable() 
    select new 
    { 
     FacProcess = r.Field<string>("FACILITY_PROCESS_SUB_GROUP_CODE"), 
     GroupName = r.Field<string>("PROCESS_SUB_GROUP_NAME"), 
     Item3 = r.Field<string>("Item3") 
    } 
    distinct; 

它然後將列表或迭代它。沒有任何選擇/區別/等,直到類似於以下內容運行:

var list = result.ToList() 
foreach(var item in result) {} 
+0

有道理,謝謝 – johnc 2008-11-14 01:44:21