2011-03-01 105 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这是你的自定义类的一个实例,你会得到你自定义类的一个实例我相信。