3

GroupBy + Sum のトピックをたくさん読みましたが、使い方がわかりませんでした。

連絡先のリストがあり、このリストで状態を取得したい (もっと表示されます)。

だから私のコードは次のとおりです。

contacts.GroupBy(i => i.Address.State.ToUpperInvariant());

この GroupBy で、もっと表示される状態を知りたい (空の状態は重要ではないため、"" の大文字と小文字を削除します)。

どうすればいいのですか?

私は次のようなことを考えていました:

contacts.GroupBy(i => i.Address.State.ToUpperInvariant()).Select(i => i.Max());

前もって感謝します!

4

1 に答える 1

6

次のようなものが必要です。

var counts = contacts
    .Where(c => c.State != string.Empty)
    .GroupBy(i => i.Address.State, StringComparer.OrdinalIgnoreCase)
    .Select(grp => new { State = grp.Key, Count = grp.Count());

GroupByを返しますIEnumerable<IGrouping<TKey, TSource>>。IGrouping <TKey, TSource>は を実装IEnumerable<TSource>しているため、拡張メソッドを使用Countしてグループ内の要素の数を取得できます。

于 2013-06-18T21:32:15.687 に答える