Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用linq填充字典_C#_Linq_List_Dictionary - Fatal编程技术网

C# 使用linq填充字典

C# 使用linq填充字典,c#,linq,list,dictionary,C#,Linq,List,Dictionary,我有下面这本空字典 Dictionary<Guid, string> appTypeMap = new Dictionary<Guid, string>(); 我想使用LINQ填充字典。 我该怎么做? 谢谢。试试看 appTypeMap = _applicationTypeService.GetAll().Select(o => new DictionaryEntry{ Key = o.id, Value = o.name }).ToList(); 不确

我有下面这本空字典

Dictionary<Guid, string> appTypeMap = new Dictionary<Guid, string>();
我想使用LINQ填充字典。
我该怎么做? 谢谢。

试试看

appTypeMap = _applicationTypeService.GetAll().Select(o => new DictionaryEntry{
  Key = o.id,
  Value = o.name
}).ToList();
不确定是否需要结尾处的.ToList()

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

但是,它将创建一个新词典,而不是填充您的词典。

至少应该为否定词留下注释。这是一个有效的答案,并显示了另一种方法。我没有投反对票,但编译器在这段代码中给出了“Cannot implicitly convert..”错误。有趣的是,我想知道是否需要.ToList()。谢谢您的评论。很抱歉,但只有当您需要一个
字典列表entry
s,而不是字典时,此操作才有效。。。
appTypeMap = _applicationTypeService.GetAll().Select(o => new DictionaryEntry{
  Key = o.id,
  Value = o.name
}).ToList();
appTypeMap = allApplicationTypes.ToDictionary(x => x.id, x => x.name);