2011-01-11 2 views
16

, 나는 다음 샘플 키 값 쌍을 가진 IEnumerable<KeyValuePair<string, string>> 객체를 생성해야합니다C#으로 IEnumerable <KeyValuePair <string, string >> 개체 만들기? 테스트 목적으로

Key = Name | Value : John 
Key = City | Value : NY 

이 작업을 수행하는 가장 쉬운 방법은 무엇입니까?

values = new Dictionary<string,string> { {"Name", "John"}, {"City", "NY"} }; 

또는

values = new [] { 
     new KeyValuePair<string,string>("Name","John"), 
     new KeyValuePair<string,string>("City","NY") 
    }; 
또는

:

+0

당신이'를 IEnumerable >'을 만드시겠습니까? 어디에서 데이터 소스? –

+0

초기 데이터 구조는 문제가되지 않습니다. 모든 데이터 소스를 사용할 수 있습니다. 유일한 요구 사항은 위의 키 값 쌍으로 IEnumerable을 갖는 것입니다. –

답변

41

임의

values = (new[] { 
     new {Key = "Name", Value = "John"}, 
     new {Key = "City", Value = "NY"} 
    }).ToDictionary(x => x.Key, x => x.Value); 
4
var List = new List<KeyValuePair<String, String>> { 
    new KeyValuePair<String, String>("Name", "John"), 
    new KeyValuePair<String, String>("City" , "NY") 
}; 
+1

'KeyValuePair []'을 사용하면'List >'을 사용하는 것보다 더 효율적일 것입니다. – cdhowie

8

Dictionary<string, string>IEnumerable<KeyValuePair<string,string>> 구현한다.

1

그게 무슨 뜻입니까, 아니면 더 많은 것이 있습니까?

1

당신은 간단하게 할당 할 수 있습니다 Dictionary<K, V> 그건 당신이 시도 할 수 있습니다 작동하지 않는 경우 IEnumerable<KeyValuePair<K, V>>

IEnumerable<KeyValuePair<string, string>> kvp = new Dictionary<string, string>(); 

에 -

IDictionary<string, string> dictionary = new Dictionary<string, string>(); 
      IEnumerable<KeyValuePair<string, string>> kvp = dictionary.Select((pair) => pair); 
관련 문제