2016-12-16 77 views
-1

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

所以我的问题是,如果有一种方法使用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

看看'.Where()'LINQ方法。 –

+0

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

回答

0

你首先能GroupBy(),不是采取只值多于1个结果并且与解开:

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

我没有downvote最初的帖子,但我会认为downvotes是因为这个答案是错误的。 –

+0

此外,你不应该只是删除和转发只是为了洗掉downvotes。 –

+0

谢谢!它为我工作。 – superkiller170793