gpt4 book ai didi

具有唯一键和值的 C# 字典类型

转载 作者:可可西里 更新时间:2023-11-01 08:22:09 25 4
gpt4 key购买 nike

我想知道 C# 中是否有类似于“字典”的内置类型,但 TKey 和 TValue 都必须是唯一的。

例如:

d.Add(1, "1");
d.Add(2, "1"); // This would not be OK because "1" has already been used as a value.

我知道这有点奇怪,但似乎 BCL 中有大约 10 亿个集合类型,它可能存在。有什么想法吗?

最佳答案

使用 Dictionary 和 HashSet/secondary reverse Dictionary 怎么样 - 它将解决问题,并且比检查单个 Dictionary 的性能更好。

像这样的东西,包装成类:

HashSet<string> secondary = new HashSet<string>(/*StringComparer.InvariantCultureIgnoreCase*/);
Dictionary<int, string>dictionary = new Dictionary<int, string>();
object syncer = new object();

public override void Add(int key, string value)
{
lock(syncer)
{
if(dictionary.ContainsKey(key))
{
throw new Exception("Key already exists");
}

if(secondary.Add(value)
{
throw new Exception("Value already exists");
}
dictionary.Add(key, value);
}
}

关于具有唯一键和值的 C# 字典类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9438060/

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