gpt4 book ai didi

c# - 如何制作具有多个键和便宜的 Contains 操作的字典?

转载 作者:太空宇宙 更新时间:2023-11-03 10:24:26 24 4
gpt4 key购买 nike

基本上我想做的是 Dictionary<List<TKey>, TValue> .我想要许多指向值的值(粗略图:paint skills overwhelming),是的,这可以Dictionary<List<TKey>, TValue>来完成,但我还需要检查一个键是否存在(本质上 - 我得到了 A 到 Z 的值,我需要找到它们是否是键,如果是,则检索与它们关联的值)并遍历每个列表以找到值似乎是一个非常昂贵的操作(我还没有测试过,但我只是觉得这个操作贵得离谱)。我见过 MultiValueDictionary但不是多键字典。有什么帮助吗?谢谢:)

最佳答案

我建议您使用简单的 Dictionary<TKey, TValue>可能将您的键映射到相同的值。如果您关心的是TValue作为一个值类型,需要对其所有关联的键进行一致的更新,然后在其周围使用类包装器,以便所有所述键都指向同一个实例。

例如:

public class Wrapper<TValue>
{
public TValue Value { get; set; }
}

static void Main(string[] args)
{
var d = new Dictionary<char, Wrapper<int>>();
d.Add('A', new Wrapper<int> { Value = 1 });
d.Add('B', d['A']); // same value as 'A'
d.Add('C', new Wrapper<int> { Value = 2 });
d.Add('D', new Wrapper<int> { Value = 3 });
d.Add('E', d['D']); // same value as 'D'
d.Add('F', d['D']); // same value as 'D'

d['B'].Value--; // decrement 'B' value from '1' to '0'
Console.WriteLine(d['A'].Value); // new value shows up for 'A' too
}

关于c# - 如何制作具有多个键和便宜的 Contains 操作的字典?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32159607/

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