5

我自己学习 C# 已经两个月了。之前,我学过 PHP,发现它有一个数组,其中索引是一个字符串,像这样:

$John["age"] = 21;
$John["location"] = "Vietnam";

记住我们为数组元素设置的内容非常有用。我试图找出 C# 是否支持该数组类型,但我还没有看到任何答案。

C# 有这样的数组吗?如果是这样,我该如何创建它?

4

3 回答 3

6

C# 支持任何类型的对象作为索引。一个内嵌的实现是System.Collections.Generic.Dictionary<T1,T2>. 你可以这样声明:

Dictionary<string, string> myDictionary = new Dictionary<string, string>();
于 2012-09-12T15:37:53.540 回答
5

是的,这是一个关联数组,在 C# 中由泛型Dictionary<TKey, TValue>类或非泛型表示Hashtable

您的代码只能使用 a Hashmap,因为这些值并非都属于同一类型。但是,我强烈建议您重新考虑该设计。

于 2012-09-12T15:36:52.670 回答
4

System.Collections.Generic.Dictionary<T1,T2>像其他人说的那样使用。为了完成你的知识,你应该知道你可以控制自己的行为[]。例子:

public class MyClass
{
    public string this[string someArg]
    {
        get { return "You called this with " + someArg; }
    }

}

class Program
{

    void Main()
    {
        MyClass x = new MyClass();
        Console.WriteLine(x["something"]);
    }
}

会产生“你用一些东西来称呼它”。

更多关于这在文档中

于 2012-09-12T15:46:39.713 回答