2014-11-14 2 views
1

기본적으로 LINQ에서 첫 번째 항목을 선택하는 방법을 찾고 있습니다. 목록에서 그룹화 된 개체를 3 개라고 말합니다.C# LINQ 개체 별 속성 목록, X 양 선택

예를 들어, 목록이 포함될 수 있습니다

{ "AAA", "AAA", "AAA", "AAA", "BBB", "BBB", "CCC", "CCC", " CCC ","CCC ","CCC ","CCC ","DD ","EE ","EE "}

내가 될 것 반환 할 것입니다 목록 :

{"AAA AAA, AAA, BBB, CCC, CCC, CCC, DD, EE, EE)} 그룹화 된 요소의 처음 3 개 (3 개의 요소가 없으면 많은 요소를 반환합니다. 모자는 수 1, 2)

내가 지금까지있는 것은 : 바로 위의 첫 번째 목록을 반환

List<Object> sorted = mainList.OrderBy(x => x.NAME).ToList(); 

.

은 내가

.Select() or .SelectMany() 

어떤 형태를 사용할 필요가 파악하지만 각 그룹의 첫 번째 X 금액을 얻기 위해 지정하는 방법을 아주 잘 모르겠어요 그리고 나는를 보여줍니다 온라인 아무것도 발견하지 않았습니다 내가 필요한 것의 예.

감사

답변

5

먼저 그룹에있는 모든 항목이 필요합니다 각 그룹의 첫 번째 X 항목을 얻으려면. 당신이 항목을 그룹화 한 후 Take는 그 순서에서 먼저 - 투 - X 아이템을 얻을 수 있습니다 :

var query = data.GroupBy(item => item.Name) 
    .SelectMany(group => group.Take(3)); 
+0

이 내가, 감사 필요 정확히입니다! – sl133