2013-06-18 4 views
3

많은 GroupBy + Sum 주제를 읽었지만 사용법을 이해하지 못했습니다.GroupBy 및 합

연락처 목록이 있으며이 목록에서 상태 (더 표시됨)를 가져오고 싶습니다.

그래서 내 코드는이 GROUPBY에서

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

, 내가 더 많이 나타나는 상태를 알고 싶다 (의 경우를 제거 ""빈 상태 나에게 중요하지 않기 때문에).

어떻게해야합니까?

내가 이런 식으로 생각 : 사전에

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

감사합니다!

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()); 

GroupByIEnumerable<IGrouping<TKey, TSource>>를 반환

답변

6

당신은 뭔가를 원한다. IGrouping<TKey, TSource>IEnumerable<TSource>을 구현하므로 Count 확장 방법을 사용하여 그룹의 요소 수를 얻을 수 있습니다.

+0

대단히 감사합니다. Lee! 그것은 작동합니다! – Crasher