2012-06-08 6 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());   
} 

どうすれば簡単にlinqを使用できますか?

答えて

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()); 
関連する問題