C#Linq问题GROUP BY?

时间:2011-03-01 22:06:44

标签: c# .net linq

我有一个集合List<CustomClass>,我试图找到一种方法来返回一个字段,该字段对应于发生次数最多的另一个字段。 我过去曾问过类似的问题,但我不确定如何将逻辑扩展到自定义类。 例如。

我的CustomClass有三个公共属性:

Title
Mid
Eid

并在循环中填充List<CustomClass> MatchedFeatures = List<CustomClass>();

我需要执行Linq操作来返回具有最大数量的相同Mid的类的Eid。所以我们计算相同的Eid列。

我尝试过使用

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

但它不会返回我想要的东西。

谁能看到我哪里出错了?我正在使用C#

这是上一个被问到的问题,似乎工作正常。现在如何在这种情况下扩展它......? Simple LINQ question in C#

非常感谢, 布雷特

2 个答案:

答案 0 :(得分:6)

如果要对Eid属性相同的功能进行分组,则应使用GroupBy(MatchedFeature => MatchedFeature.Eid)

如果遗漏.Eid,它只会将这些功能组合在一起,而这些功能完全相同 - 而不是具有相同Eid的功能。

答案 1 :(得分:0)

您必须执行MatchedFeature => MatchedFeature.Eid而不是MatchedFeature => MatchedFeature这是您的自定义类的实例,因此您认为每个自定义类的实例都有一个组。