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

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

Voglio convertire il set di risorse sopra nel dizionario. Attualmente sto eseguendo manualmente il loop come di seguito.Conversione di un set di risorse nel dizionario tramite linq

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

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

Come posso ottenere facilmente utilizzando linq?

risposta

29

Prova questo:

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

completamente dimenticato di questo <> metodo 'Cast()'! – superjos

2
var resourceDictionary = resourceSet.Select(r => (DictionaryEntry) r) 
            .ToDictionary(dicEntry => dicEntry.Key.ToString(), 
               dicEntry => dicEntry.Value.ToString()); 
Problemi correlati