2013-11-22 3 views
0

나는 분명히 Key로 정렬 된 SortedList를 가지고 있습니다. 어딘가에 코드에서 값 대신 키 대신 값을 정렬하려면 값과 키를 바꿔서 SortedList를 다시 삽입해야합니까? 열쇠와 가치를 어떻게 교환 할 수 있습니까? 다른 SortedList를 만들고 foreach 루프를 사용하여로드하십시오.키로 정렬 된 목록보기

+0

를 이동합니다 http://stackoverflow.com/questions/1250281/c-sharp-how-to-sort-a-sorted-list-by- 그것의 값 - 열 –

+0

값을 이동하는 동안 foreach를 할 수 있습니다. 또는 유연하게 만들기 위해 확장 메소드를 할 수 있습니다. – DevEstacion

+0

또는 2 개의 정렬 목록을 사용하여 하나의 목록에 키/값을 추가하고 바꿔서 다른 목록에 추가하십시오. 이 방법은 모든 것이 원래 열거에서 처리됩니다. 물론 데이터에 수백만 개의 항목이 없다고 가정하면 – tinstaafl

답변

0

이 서둘러 제작되었습니다. 이 유형을 이동하고 키를 반환하고 값이

public static class Extension 
    { 
     public static SortedList<TValue, TKey> ShiftKeyValuePair<TKey, TValue>(this SortedList<TKey, TValue> instance) 
     { 
      SortedList<TValue, TKey> key = new SortedList<TValue, TKey>(); 
      foreach (var item in instance) 
       key.Add(item.Value, item.Key); 
      return key; 
     } 
    } 
+0

내 구현에 대해 방금 게시 했습니까? –

+0

@HarrisCalvin 어디 있니? 네가 net 4.0에 있다면 태스크 병렬 라이브러리를 사용하여 속도를 더욱 높일 수있을 것이다. – DevEstacion