2012-06-08 3 views
8
var rm = new ResourceManager(sometype); 

var resourceSet = rm.GetResourceSet(CultureInfo.CurrentUICulture, true, true); 

위의 리소스 세트를 사전으로 변환하려고합니다. 현재 나는 아래와 같이 수동으로 반복하고있다.linq을 사용하여 리소스 세트를 사전으로 변환

var resourceDictionary = new Dictionary<string, string>(); 

foreach (var r in resourceSet) 
{ 
    var dicEntry = (DictionaryEntry)r; 
    resourceDictionary.Add(dicEntry.Key.ToString(), dicEntry.Value.ToString());   
} 

어떻게하면 쉽게 달성 할 수 있습니까?

답변

29

이 시도 :

var resourceDictionary = resourceSet.Cast<DictionaryEntry>() 
            .ToDictionary(r => r.Key.ToString(), 
                r => r.Value.ToString()); 
+1

완전히이'캐스트 <>()'방법을 잊었다! – superjos

2
var resourceDictionary = resourceSet.Select(r => (DictionaryEntry) r) 
            .ToDictionary(dicEntry => dicEntry.Key.ToString(), 
               dicEntry => dicEntry.Value.ToString()); 
관련 문제