我有一个集合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#
非常感谢, 布雷特
答案 0 :(得分:6)
如果要对Eid
属性相同的功能进行分组,则应使用GroupBy(MatchedFeature => MatchedFeature.Eid)
。
如果遗漏.Eid
,它只会将这些功能组合在一起,而这些功能完全相同 - 而不是具有相同Eid
的功能。
答案 1 :(得分:0)
您必须执行MatchedFeature => MatchedFeature.Eid
而不是MatchedFeature => MatchedFeature
这是您的自定义类的实例,因此您认为每个自定义类的实例都有一个组。