2013-03-10 142 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更好。今天學點新東西。 – 2013-03-10 16:07:05

1

嘗試

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

不知道你到底需要一個.ToList()....

+3

至少應該對否定留言。這是一個有效的答案,並顯示了一種替代方法。 – 2013-03-10 16:48:54

+1

我沒有downvote,但編譯器給這個代碼「不能隱式轉換..」錯誤。 – 2014-10-30 19:30:22

+0

有趣,我想知道是否需要.ToList()。感謝您的評論。 – 2014-10-30 20:24:36