如何查找哪个值具有使用LinQ的表中的最大行数?
问题描述:
看一看如下表:如何查找哪个值具有使用LinQ的表中的最大行数?
student Subject
badhon English
jack math
andy physics
farhan english
joe english
foe physics
现在我需要知道哪些对象有最大入口&什么是多少?我知道它对于有经验的人来说很简单,但我对LinQ真的很陌生。所以如果你能给我任何参考来研究各种LinQ例子,那太好了。谢谢。
答
嗯,它看起来像你想按行组,然后通过数递减顺序,并采取的第一个结果:
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
严格地说,排序是不必要的 - 喜欢的东西MaxBy
在MoreLINQ你可以在没有排序整个事物的情况下找到最大值。但这是最简单的方法,如果你只想保持在香草LINQ。