linq

2012-06-08 12 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()); 
संबंधित मुद्दे