2013-03-10 15 views
28

kullanarak bir sözlük doldurmakBoş Sözlük aşağıdakilere sahip linq

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

ve aşağıdaki liste:

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

İstiyorum şu şekildedir:

List<ApplicationType> allApplicationTypes = _applicationTypeService.GetAll() 

Uygulama tipi tarif edilir LINQ kullanarak sözlüğü doldurun.
Bunu nasıl yaparım? Teşekkürler.

cevap

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

deneyin.

+6

+1 daha da iyi. Bugün yeni bir şey öğrenin. –

1

senindir doldurmak değil, Yeni sözlük yaratacak, sen ucunda bir .ToList() gerekirse emin değil

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

.... Ancak

+3

En azından bir negatif için yorum bırakmalı. Bu geçerli bir cevaptır ve alternatif bir yöntem gösterir. –

+1

Reddetmedim, ancak derleyici bu kod ile "Implicitlyly convert .." hatası veriyor. –

+0

ilginç, .ToList() 'ın gerekli olup olmadığını merak etmiştim. Yorum için teşekkürler. –