是否可以通过索引和字符串设置C#集合并允许重复的键?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了是否可以通过索引和字符串设置C#集合并允许重复的键?相关的知识,希望对你有一定的参考价值。

我能找到的最接近的是NameValueCollection

通过该类,我可以添加重复的键,并可以通过字符串和索引获取。

但是,即使我可以按字符串分配。由于只能设置为索引,因此无法按索引分配。

NameValueCollection data = new NameValueCollection();

data.Add("foo", "");

string foo = data["foo"]; // valid

foo = data[0]; // valid

data["foo"] = "abc"; // valid

data[0] = "abc"; // invalid

我想要类似于php中的数组变量的东西。

答案

在C#中,您可以向任何类,结构或接口添加自定义索引器(示例代码中显示的myVariable [type]格式)行为。据我所知,这是C#独有的。

这意味着,如果您不喜欢任何可用的C#数据结构,则可以使用自定义索引器行为简单地创建自己的。这意味着您可以使myDataStructure [string]和myDataStructure [int]完全按照您想要的方式运行。

您可以在以下位置找到更多信息:https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/indexers/using-indexers

以上是关于是否可以通过索引和字符串设置C#集合并允许重复的键?的主要内容,如果未能解决你的问题,请参考以下文章

java中 List 与Set 有啥区别?

集合——List集合

Java中的Map允许有重复元素吗

java集合类

Java Review (二十七集合----- List 集合)

Java Review (二十七集合----- List 集合)