2013-03-05 2 views
0

값으로 사전을 주문하고 싶습니다. 그것은 일반적으로 수행되는 방식으로 보인다 .Net은 Mono API에 존재하지 않는다.값순 사전 정렬

특정 API 호출이 있습니까? 아니면 직접해야합니까?

감사

+4

"그것은 일반적으로 닷넷에서 할 것입니다 방법은"무엇입니까? 예를 들어 주시겠습니까? –

+0

아직 인터넷 검색을하지 않은 것으로 보입니다. – Guy

+0

'System.Collections.Generic.Dictionary <,>'인 경우 사전 자체는 특별한 순서가 없으므로 정렬 할 수 없습니다. 'IEnumerable <>'이 정렬되도록 사전의 키/값 쌍을 갖는'IEnumerable <>'(시퀀스)를 원한다면, 예를 들어. LINQ 메서드'OrderBy'. –

답변

0

당신이 Linq에 사용할 수 있습니다 : 주석으로

var dict = new Dictionary<string, int>(); 
var sorted = dict.OrderBy(kvp => kvp.Value).ToList(); 
1

은 사전 클래스에는 순서가 없습니다. 주문한 사전을 원하면 SortedDictionary 클래스가 있습니다.

그러나 SortedDictionary는 키순으로 정렬됩니다. 그것의 가치에 의하여 주문 사전을 지키는 것은 보통 업무 같이 보이지 않는다.

어쨌든, 당신은 당신이 할 수있는 정렬 된 값에 액세스하려면 :

dict.Values.OrderBy(v => v).ToList(); //Sorted list of the values of the dictionary dict 

또는

dict.OrderBy(kvp => kvp.Value).ToList(); //Sorted list (by value) of the key value pairs of the dictionary dict