2016-12-16 55 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