morelinq由多个属性区分

时间:2015-05-06 10:18:08

标签: c# linq visual-studio-2013 distinct-values morelinq

我一直在使用morelinq来创建一个独特的对象列表。我的对象有大约20个属性,在最终列表中没有一个属性是唯一的。 但是,一起使用的两个属性可以揭示唯一对象:

家长ID |儿童身份

  • 1 | 1
  • 1 | 2
  • 2 | 1
  • 2 | 2
  • 2 | 3

我看到this question并认为这是同样的问题,所以我下载了更多的林书并尝试使用:

list = list.DistinctBy(c => new { c.id, c.parentid }).ToList();

然而,这会在EITHER属性上产生一个不同的列表,而不是两者(所以我只会看到每个父项有一个孩子)

使用morelinq实现此目的的正确方法是什么?

1 个答案:

答案 0 :(得分:3)

    list = list
           .GroupBy(a=> new { a.id, a.parentid})
           .Select(a=> a.first());