2012-06-24 4 views
1

에서 나는 클래스가 있습니다.Linq에 : 나는 <code>LevelInfo</code>의 컬렉션이</p> <pre><code>public class LevelInfo { public int Id { get; set; } public string HexColor { get; set; } public string Caption { get; set; } public int MinPrice { get; set; } } </code></pre> <p>: 그룹 선택은 수집

Id  HexColor  Caption  MinPrice 
1  color1  name1   10 
2  color2  name2   20 
3  color2  name3   10 
4  color3  name4   10 

내가 HexColor으로 (정확히, 제대로 말을하는 방법을 모른다) 그룹화 LevelInfo의 새 컬렉션을 얻으려면 : 예를 들어, 우리는 다음과 같은 데이터가 있습니다. 나는 위의 데이터의 경우 3 개 레코드를 포함 다음 수집 싶어 : 우리가 color1을 가지고 있기 때문에 Id

Id  HexColor  Caption  MinPrice 
1  color1  name1   10 
3  color2  name3   10 
4  color3  name3   10 

우리는 기록을 선택하지 2에 해당하고 그 분의 가격을 가지고있어 (Id = 1). 어떻게해야합니까? 감사합니다. .

답변

4

그래서 그룹화하려면 내에서 MinPrice 그룹으로 주문한 다음 각 그룹에서 첫 번째 요소를 선택 하시겠습니까? 맞습니다 경우, 당신이 원하는 :

var query = from level in levels 
      group level by level.HexColor into levels 
      select levels.OrderBy(level => level.MinPrice).First(); 

을 다른 방법으로, 당신은 최저 가격으로 값을 따기, MinPrice에 의해 완전한 종류 일을 피할 수 MoreLINQ 사용하는 경우 :

var query = from level in levels 
      group level by level.HexColor into levels 
      select levels.MinBy(level => level.MinPrice); 
관련 문제

 관련 문제