속성별로 중복 된 개체 목록이 있습니다. 나는 모든 비 복제품을 얻고 싶다. 또한 조건에 따라 복제물 1 장을 얻고 싶다.상태가 다른 요소를 필터링하십시오.
예 :
목록 :
- 코드 : 1 학년 : 10
- 코드 : 1 학년 : 20
- 코드 : 2 학년 : 1
예상 목록 :
- 코드 : 1, 등급 : 20
- 코드 : 2 학년 : 1
조건은, 중복 요소의 일 최고 Grade
로 하나를 잡아 것입니다. 어떻게이 람다 또는 linq 표현을 쓸까요?
속성별로 중복 된 개체 목록이 있습니다. 나는 모든 비 복제품을 얻고 싶다. 또한 조건에 따라 복제물 1 장을 얻고 싶다.상태가 다른 요소를 필터링하십시오.
예 :
목록 :
예상 목록 :
조건은, 중복 요소의 일 최고 Grade
로 하나를 잡아 것입니다. 어떻게이 람다 또는 linq 표현을 쓸까요?
당신은이 작업을 수행 할 GroupBy
를 사용할 수 있습니다
var results = items.GroupBy(item => item.Code)
.Select(g => g.OrderByDescending(i => i.Grade)
.First());
내가 먼저 GroupBy
Code
속성은 다음
뭔가
list.GroupBy(item=>item.Code).Select(item=>new {code = item.Key, grade = item.Max(i=>i.Grade)}).ToList();
같은 그룹에있는 각 요소의
Max
를 선택하도록 제안