gpt4 book ai didi

C#:Dictionary 如何在没有 Add(KeyValuePair) 的情况下实现 ICollection>?

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

查看System.Collections.Generic.Dictionary<TKey, TValue> , 它清楚地实现了 ICollection<KeyValuePair<TKey, TValue>> ,但没有所需的“void Add(KeyValuePair<TKey, TValue> item)”功能。

这也可以在尝试初始化 Dictionary 时看到像这样:

private const Dictionary<string, int> PropertyIDs = new Dictionary<string, int>()
{
new KeyValuePair<string,int>("muh", 2)
};

失败了

No overload for method 'Add' takes '1' arguments

为什么会这样?

最佳答案

预期的 API 是通过两个参数添加 Add(key,value)方法(或 this[key] 索引器);因此,它使用显式接口(interface)实现来提供 Add(KeyValuePair<,>)方法。

如果您使用 IDictionary<string, int>相反,您将可以访问缺少的方法(因为您无法在界面上隐藏任何内容)。

此外,对于集合初始值设定项,请注意您可以使用替代语法:

Dictionary<string, int> PropertyIDs = new Dictionary<string, int> {
{"abc",1}, {"def",2}, {"ghi",3}
}

它使用 Add(key,value)方法。

关于C#:Dictionary<K,V> 如何在没有 Add(KeyValuePair<K,V>) 的情况下实现 ICollection<KeyValuePair<K,V>>?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/268064/

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