gpt4 book ai didi

具有默认值的 .net 字典

转载 作者:行者123 更新时间:2023-12-01 07:31:05 28 4
gpt4 key购买 nike

我想要一个字典,它可以为字典中没有的任何键返回一个指定的值,例如:

var dict = new DictWithDefValues("not specified");
dict.Add("bob78", "Smart");
dict.Add("jane17", "Doe");
Assert.AreEqual(dict["xxx"], "not specified");

扩展 System.Collections.Generics.Dictionary 并覆盖 TryGetValue 不起作用,因为 TryGetValue 不是虚拟的。

从头开始(从 IDictionary<,>)重新实现 Dictionary 太费力了。

扩展方法不会让我用默认值“初始化”字典。我想让字典的消费者认为key就在那里,而不仅仅是做 dict.GetOrDefault(key, "not specified");

最佳答案

Reimplementing Dictionary from scratch (from IDictionary<,>) is too much efforts



这确实是最好的选择。只需封装一个 Dictionary<,>作为您类(class)的成员,并将所有成员传递给字典的代码。在这种情况下,您只需要处理您希望不同的属性和方法。

我同意这是一个有点乏味的工作 - 但它可能不到 5 分钟的输入时间,因为每个方法都可以传递给内部字典的实现。

关于具有默认值的 .net 字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4079839/

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