gpt4 book ai didi

c# - 如何检查某个键的字典是否包含值?

转载 作者:行者123 更新时间:2023-11-30 14:51:21 25 4
gpt4 key购买 nike

因此,如果我有一本字典,其中每个键可以取多个值(即 Dictionary < string , Hashset < string >> ),现在我想检查 dic [key a] 是否包含一个值,例如“b”在哈希集中迪克[a]?如何做到这一点?

最佳答案

我认为测试存在性的最有效方法是结构和检查函数是否定义如下:

// extension method on IDictionary<TKey, HashSet<TValue>> can be used
public static bool ContainsKeyValue<TKey, TValue>(IDictionary<TKey, HashSet<TValue>> dictOfHash, TKey key, TValue value)
{
if (!dictOfHash.ContainsKey(key))
return false;

return dictOfHash[key].Contains(value);
}

var dict = new Dictionary<int, HashSet<String>>()
{
{ 1, new HashSet<String>() { "one", "two", "three"} },
{ 2, new HashSet<String>() { "ten", "eleven", "twelve"} }
};

bool exists = ContainsKeyValue(dict, 1, "two");
exists = ContainsKeyValue(dict, 1, null);
exists = ContainsKeyValue(dict, 2, "one");
exists = ContainsKeyValue(dict, 3, null);

存在性检查的复杂度应该是 O(1),因为 Dictionary<,>Hashset<>具有 O(1) 的获取/设置复杂度。

关于c# - 如何检查某个键的字典是否包含值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34465891/

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