簡體   English   中英

在LINQ2DataSet中指定返回行

[英]Specifying return rows in LINQ2DataSet

我需要從DataTable中提取不同的行子集,並且認為LINQ2DataSets可能是一種有用且干凈的方法,但是看起來不可能簡單地從LINQ2DS查詢中識別返回行,如下所示

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()方法的列的子集?

您忘記了新的語句和字段名稱:

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 (微軟開發人員Devision副總裁)有一些關於LINQ的好信息(他談到LINQ to SQL,但大多數都適用於此)。

然后應用distinct子句:

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;

然后將其放入列表或迭代它。 在運行以下內容之前,不會選擇/區分/ etc:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM