0

以下の表をご覧ください。

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

今、私はどの主題が最大のエントリを持っているか、そしてその数は何であるかを知る必要がありますか?経験豊富な人にとっては簡単なことは知っていますが、LinQは本当に初めてです。したがって、さまざまなLinQの例を研究するための参考資料を教えていただければ、それはすばらしいことです。ありがとう。

4

1 に答える 1

2

行ごとにグループ化し、カウント(降順)で並べ替えて、最初の結果を取得したいようです。

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内にとどまりたい場合は、これが最も簡単な方法です。

于 2013-03-05T04:10:43.620 に答える