gpt4 book ai didi

c# ToDictionary with ContainsKey 检查

转载 作者:太空狗 更新时间:2023-10-29 18:06:52 28 4
gpt4 key购买 nike

我有一个要放入字典中的列表,为简单起见,插入的值将全部相同。

我可以使用 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 时检查重复条目的正确方法是什么?

最佳答案

您可以使用 Distinct() 来过滤掉重复项:

Dictionary<string, int> myDictionary2 = list.Distinct().ToDictionary(i => i, i => 1);

同样的方法也会使您的传统循环更加清晰,因为您不必“手动”检查重复项:

foreach (string value in list.Distinct())
{
myDictionary.Add(value, 1);
}

关于c# ToDictionary with ContainsKey 检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9931509/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com