如何使用LinQ查找哪个值具有表中的最大行数?

时间:2013-03-05 04:06:43

标签: linq

看看下表:

student       Subject
badhon        English
jack          math
andy          physics
farhan        english
joe           english
foe           physics

现在我需要知道哪个科目有最大入口和这是多少?我知道这对经验丰富的人很简单,但我对LinQ来说真的很新。所以如果你能给我任何参考研究各种LinQ示例,那就太好了。感谢。

1 个答案:

答案 0 :(得分:2)

好吧,看起来你想按行分组,然后按count(降序)排序并取第一个结果:

var subjectsByCount = rows.GroupBy(row => row.Subject)
                          .Select(g => new { Subject = g.Key, Count = g.Count() })
                          .OrderByDescending(x => x.Count);
var biggestSubject = subjectsByCount.First();

// Now you can use biggestSubject.Subject and biggestSubject.Count

严格来说,排序是不必要的 - 使用MoreLINQ中的MaxBy之类的内容,您可以找到最大值而无需对整个事物进行排序。但如果你只想留在香草LINQ中,这是最简单的方法。