당신은 Enumerable.ElementAt
을 사용할 수
var everySecond = Items.GroupBy(x => x.Type).Select(grp => grp.ElementAt(1)).ToList();
당신이 (참조 유형) 대신 null을 반환하는 ElementAtOrDefault
을 사용할 수 있도록 많은 항목이없는 경우.
편집 : "내가 selectedItem가 있고 주요 요소로 그룹에 그것을 표시 할"그래서 실제로이 경우, 특정 조건과 일치하는 첫 번째 싶어
그것은이다 당신이 그룹을 주문하고 첫 번째를 취할 수 선택된 : 나는 OrderByDescending
을 사용했다
var everySelected = Items
.GroupBy(x => x.Type)
.Select(grp => grp.OrderByDescending(x => x == selectedItem).First())
.ToList();
비교하여 (진정한가 1이고 거짓이 0 고려). 이렇게하면 선택한 항목과 동일한 참조 인 모든 항목이 먼저 나타납니다 (참조 평등 대신 비교할 방법을 논리로 바꿉니다).
하지만 그 요소의 색인을 모르겠습니다. 요소별로 선택할 수 있습니까? –
@ArmenMkrtchyan :하지만 "예를 들어 두 번째"_와 같은 것을 원한다고 언급했습니다. "요소별로 선택"을 의미하는 것은 무엇입니까? –
나는 selectedItem을 가지고 있으며 그것을 주 요소로 그룹에 표시하려고합니다. –