使用linq

时间:2016-12-16 22:06:12

标签: c# linq

我有一个节点列表List<Node>Node有一个属性EnquivalenceNo。我试图做的是检索具有相同等价数的节点,但我还没有实现。

所以我的问题是,是否有一种方法可以使用linq获取具有相同等价数的节点,并将该查询的结果放入另一个列表中?

例如:

列表

 Node 1 { EquivalenceNo 1 }
 Node 2 { EquivalenceNo 2 }
 Node 3 { EquivalenceNo 2 }
 Node 4 { EquivalenceNo 8 }

结果应该是这样的:

新列表

 Node 2 { EquivalenceNo 2 }
 Node 3 { EquivalenceNo 2 }

1 个答案:

答案 0 :(得分:0)

您可以先GroupBy(),而不是只获取超过1个结果的值,然后展开SelectMany

list.GroupBy(x => x.EquivalenceNo)
    .Where(x => x.Count() > 1)
    .SelectMany(x => x)
    .ToList();