2013-06-18 110 views
3

我讀了很多GroupBy + Sum主題,但我不明白如何使用它。GroupBy和Sum

我有一個聯繫人列表,並在此列表中,我想獲得狀態(顯示更多)。

所以我的代碼是:

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

在此的GroupBy,我想知道,顯得更加的狀態(和刪除「的情況下」,因爲空的狀態對我來說並不重要)。

我該怎麼做?

我想在這樣的事情:

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

提前感謝!

回答

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擴展方法獲取組中的元素數。

+0

非常感謝你李!有用!!! – Crasher