2013-03-10 144 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