2013-04-01 3 views
0

를 사용하여 을 나열하려면 는 위의 등급에서 계층 (Tier)으로 나누어지고 두 배 배열은 비율의 값도 보유합니다. 그렇다면 <문자열 myClass는> 내가 <code><string,Rate></code></p> <p>의 사전을 가지고 C#을 LINQ

Rate rate1 = new Rate("One",1,1.1); 
Rate rate2 = new Rate("Two",1,2.2); 
Rate rate3 = new Rate("Three",2,3.3); 

..

Dictionary<string,Rate> rates = new Dictionary<string,Rate> { {rate1.Name,rate1},{rate2.Name,rate2},{rate3.Name,rate3}}; 


List<double[]> myList = (linq result from Rates separated list of arrays by tier) 

다음으로 myList [0] 1.1 및 2.2, countain 것이며 myList에 [1] 3.3 countain 것이다.

답변은 좋았지 만 계층별로 정렬 된 목록을 제공하려면 질문을 수정해야합니다.

답변

3
List<double[]> list = rates 
      .GroupBy(pair => pair.Value.Class, pair => pair.Value.Value) 
      .Select(doubles => doubles.Select(d => d).ToArray()) 
      .ToList(); 
+0

감사합니다! Class가 정수 대신 대신 Class로 정렬 된 목록을 갖고 싶다면 어떻게해야할까요? linq 문은 어떻게 생겼을까요? – user2232844

+0

Linq ('IEnumerable ')에는 'OrderBy'라는 확장 메서드가 있습니다. – IAbstract

+0

확실하지만 어디로 가나 요? – user2232844

1
List<double[]> myList = rates.GroupBy(p => p.Value.Tier) 
          .Select(g => g.Select(p => p.Value.Value).ToArray()) 
          .ToList();