如何使用linq按列值获取唯一行

时间:2014-08-01 07:52:14

标签: linq

我有表格格式的值

   IEnumerable<IEnumerable<Data>> tableResult=new IEnumerable<IEnumerable<Data>>();
   //below line doesn't work     
   tableResult = tableResult.Distinct(row => row("ID"));

tableResult包含表格格式的值,比如说(虚拟示例)。记录我得到的是IEnumerable<IEnumerable<Data>>不是表格。不要指望你会得到列名

ID Name     Designation
 1 Sam      Engg
 3 Mos      Doc
 3 Peter    Driver
 4 Bob      Builder

预期结果是:如何使用linq获取ID的唯一行。

     ID Name     Designation
     1 Sam      Engg
     3 Mos      Doc        
     4 Bob      Builder

1 个答案:

答案 0 :(得分:0)

您可以按ID分组并选择每个ID组中的第一项 假设您的ID列是内部IEnumerable中的第一个元素:

tableResult.GroupBy(x => x.First()).Select(x => x.First());

如果您想要在具有重复ID时显示要显示的行的更具体的定义,请将.Select(x => x.First())替换为.Select(x => x.OrderBy(y => y.Skip(n).First()).First()),其中n是要排序的列号。< / p>