我需要使用IEnumerable LINQ从datatable中过滤不同的值

时间:2010-12-13 05:38:13

标签: linq

我是LINQ概念的新手。我需要知道如何使用LINQ

获取日期表中的不同值

示例代码:

IEnumerable<DataRow> query1 =
                          (from pmh in pshTable.AsEnumerable()
                           where
                           (pmh.Field<String>("DeletedType") != "D" && pmh.Field<String>("code").ToUpper() != "XXX.XX")
                           select pmh).OrderBy(a => a.Field<String>("Description")).Distinct();

在这个编码中我能够得到不同的行。但我只需要特定的列“描述”值是不同的。请告诉我 .. 价值

1 个答案:

答案 0 :(得分:1)

你想要什么,例如你有下表:

 ID  | Description
 ----------------
 1   | Test
 2   | Test
 3   | Sample
 4   | Sample

您希望通过您的特定区别得到什么?例如{{1,Test},{3,Sample}} or {{1,Test},{4,Sample}}或......

但你可以使用GroupBy和Select来做你想做的事情:

        (from pmh in pshTable.AsEnumerable()
                                   where
                                   (pmh.Field<String>("DeletedType") != "D" 
                                   && pmh.Field<String>("code").ToUpper() != "XXX.XX")
                                   select pmh).OrderBy(a => a.Field<String>("Description"))
        .GroupBy(p=>p.Field<string>("Description"))
        .Select(p=>p.FirstOrDefault());