2013-03-10 23 views
28

का उपयोग कर एक शब्दकोश पॉप्युलेटमैं खाली शब्दकोश निम्नलिखित है LINQ

Dictionary<Guid, string> appTypeMap = new Dictionary<Guid, string>(); 

और निम्न सूची:

public class ApplicationType 
{ 
    public Guid id {get; set;} 
    public String name {get; set;} 
} 

मैं चाहता हूँ: इस प्रकार

List<ApplicationType> allApplicationTypes = _applicationTypeService.GetAll() 

आवेदन प्रकार वर्णन किया गया है LINQ का उपयोग कर शब्दकोश को पॉप्युलेट करें।
मैं यह कैसे कर सकता हूं? धन्यवाद।

उत्तर

59
appTypeMap = allApplicationTypes.ToDictionary(x => x.id, x => x.name); 

हालांकि कोशिश करें, यह एक नया शब्दकोश पैदा करेगा, तुम्हारा भर नहीं।

+6

+1 और भी बेहतर। आज कुछ नया सीखो। –

1

appTypeMap = _applicationTypeService.GetAll().Select(o => new DictionaryEntry{ 
    Key = o.id, 
    Value = o.name 
}).ToList(); 

सुनिश्चित नहीं हैं कि अगर आप छोर पर एक .ToList() की जरूरत है ....

+3

कम से कम एक नकारात्मक के लिए एक टिप्पणी छोड़ देना चाहिए। यह एक वैध उत्तर है और एक वैकल्पिक विधि दिखाता है। –

+1

मैंने डाउनवोट नहीं किया, लेकिन संकलक इस कोड के साथ "अंतर्निहित रूप से परिवर्तित नहीं कर सकता .." त्रुटि देता है। –

+0

दिलचस्प, मैंने सोचा था कि। टोलीस्ट() की आवश्यकता थी। टिप्पणी के लिये आपका धन्यवाद। –

संबंधित मुद्दे