【发布时间】:2012-04-13 11:05:04
【问题描述】:
我有一个要放入字典的列表,为简单起见,插入的值都是相同的。
我可以使用 foreach 循环。
List<string> list = new List<string>();
list.Add("Earth");
list.Add("Wind");
list.Add("Fire");
list.Add("Water");
list.Add("Water"); // Will NOT BE INSERTED using the foreach loop
var myDictionary= new Dictionary<string, int>();
foreach (string value in list)
{
if (!myDictionary.ContainsKey(value))
{
myDictionary.Add(value, 1);
}
}
以上工作。
但我想用 ToDictionary 做同样的事情 -
Dictionary<string, int> myDictionary2 = list.ToDictionary(i => i, i => 1);
这当然失败了,因为我添加了两次“水”。
使用 ToDictionary 时检查重复条目的正确方法是什么?
【问题讨论】:
标签: c# linq dictionary lambda duplicates