代码之家  ›  专栏  ›  技术社区  ›  NoName

C#有带索引的数组吗?它是像PHP那样的字符串吗?

  •  5
  • NoName  · 技术社区  · 13 年前

    我自己已经学习C#两个月了。之前,我学习了PHP,发现它有一个数组,其中的索引是一个字符串,如下所示:

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

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

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

    3 回复  |  直到 12 年前
        1
  •  6
  •   sergtk    13 年前

    C#支持任何类型的索引对象。一个尚未成熟的实现是 System.Collections.Generic.Dictionary<T1,T2> 。您可以这样声明:

    Dictionary<string, string> myDictionary = new Dictionary<string, string>();
    
        2
  •  5
  •   Daniel Hilgarth Richard    13 年前

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

    您的代码只有在 Hashmap 因为这些值并非都是相同类型的。然而,我强烈建议你重新考虑这个设计。

        3
  •  4
  •   Steve B    12 年前

    使用 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"]);
        }
    }
    

    将产生“你用某种东西来称呼这个”。

    关于此的更多信息,请访问 documentation