2011-03-01 99 views
3

我有一個集合List<CustomClass>,我試圖找到一種方法來返回一個字段,該字段對應於出現最多次數的另一個字段。 我在過去曾問過類似的問題,但我不確定如何將邏輯擴展到自定義類。例如, 。C#Linq問題GROUP BY?

CustomClass有三個公共屬性:

Title 
Mid 
Eid 

而一個List<CustomClass> MatchedFeatures = List<CustomClass>();在循環填充。

我需要執行一個Linq操作來返回具有最大數量的類別Mid發生相同的Eid's。所以我們計算相同的Eid列。

我一直在使用

var TopResult = MatchedFeatures.GroupBy(MatchedFeature => MatchedFeature).OrderByDescending(group => group.Count()).FirstOrDefault(); 

嘗試,但它不會返回我所期待的。

任何人都可以看到我要去哪裏錯了嗎?我正在使用C#

這是前面提到的問題,這似乎工作正常。現在如何在這種情況下擴展它...? Simple LINQ question in C#

非常感謝, 佈雷特

回答

6

如果您希望將這些功能在Eid性質是一樣的,你應該使用GroupBy(MatchedFeature => MatchedFeature.Eid)

如果您遺漏了.Eid,它將只將這些功能組合在一起,這些功能完全相同 - 不是具有相同Eid的功能。

0

你必須做MatchedFeature => MatchedFeature.Eid而不是MatchedFeature => MatchedFeature這是你的自定義類的一個實例,你會得到你自定義類的一個實例我相信。