2009-03-05 3 views
4
Dictionary<string, string> optionDictionary = new Dictionary<string, string>(); 

optionDictionary = ....; 

SortedDictionary<string, string> optionsSorted; 

if(sorting) 
{ 
    optionsSorted = new SortedDictionary<string, string>(optionDictionary); 
    // Convert SortedDictionary into Dictionary 
} 

return optionDictionary ; 
+0

발신자가 키를 사용하거나 순서가 중요하지 않은 경우 정의 된 순서 (예 : SortedDictionary)로 키를 반환하는 optionDictionary를 반환 하시겠습니까? –

답변

12

optionsSorted 사전을 파라미터로 사용하여 새로운 Disctionary의 인스턴스에 전달할 수 있습니다. IE :

var dictionary = new Dictionary<type1,type2>(optionsSorted); 
+0

사전이 SortedDictionary가 아니기 때문에 키에 정렬되지 않은 사전이 생성됩니다. OP가 정렬되지 않은 사전에서 SortedDictionary를 만들었 기 때문에 이것이 도움이 될 것이라고 생각하지 않습니다. –

+0

음 ... 그는 어디서 정렬 된 사전을 원했습니까? 그는 SortedDictionary를 Dictionary로 변환하려고한다고했습니다. SortedDictionary를 사용하지 않으면 어떻게 정렬 사전을 제안합니까 ??? – BFree

+0

@BFree : 우리는 자신이 원하는 것에 대해 의견이 필요합니다. 코드 스 니펫을 보면 사전을 작성한 다음 자신과 비슷한 구문을 사용하여 SortedDictionary로 변환합니다 (정렬이 참일 경우). 그/그녀가 의미하는 바를 알기 위해 내 대답을보십시오. –

8

는 다음

var dictionary = optionsSorted.ToDictionary(x => x.Key, x=> x.Value); 
1

는 그냥 ToDictionary 방법을 사용하십시오.

2

당신이 성취하려는 것을 완전히 분명하지 않습니다. 사전을 반환하는 함수가 있다고 가정하고 정렬이 사실 일 때 정렬 된 사전이되기를 원합니다.

이것이 사실이라면 사전 또는 SortedDictionary 일 수있는 반환 유형이 필요합니다.

단일 기능을 원하면 IDictionay를 메서드의 반환 형식으로 사용합니다.

관련 문제