gpt4 book ai didi

C#:从字典中删除重复值?

转载 作者:IT王子 更新时间:2023-10-29 04:45:44 24 4
gpt4 key购买 nike

如何从一个可能有重复值的字典中创建一个没有重复值的字典?

IDictionary<string, string> myDict = new Dictionary<string, string>();

myDict.Add("1", "blue");
myDict.Add("2", "blue");
myDict.Add("3", "red");
myDict.Add("4", "green");


uniqueValueDict = myDict.???

编辑:

-我不在乎保留哪个 key 。- 是否有使用 Distinct() 操作的东西?

最佳答案

您想对重复项做什么?如果您不介意丢失哪个键,只需像这样构建另一个字典:

IDictionary<string, string> myDict = new Dictionary<string, string>();

myDict.Add("1", "blue");
myDict.Add("2", "blue");
myDict.Add("3", "red");
myDict.Add("4", "green");

HashSet<string> knownValues = new HashSet<string>();
Dictionary<string, string> uniqueValues = new Dictionary<string, string>();

foreach (var pair in myDict)
{
if (knownValues.Add(pair.Value))
{
uniqueValues.Add(pair.Key, pair.Value);
}
}

诚然,这假设您使用的是 .NET 3.5。如果您需要 .NET 2.0 解决方案,请告诉我。

这是一个基于 LINQ 的解决方案,我发现它非常紧凑......

var uniqueValues = myDict.GroupBy(pair => pair.Value)
.Select(group => group.First())
.ToDictionary(pair => pair.Key, pair => pair.Value);

关于C#:从字典中删除重复值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1462101/

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