可以使用C#中的数组['Name']访问的数组

Ang*_*.47 11 c#

你可以做

array['Name'];
Run Code Online (Sandbox Code Playgroud)

在C#中

而不是:

array[0];
Run Code Online (Sandbox Code Playgroud)

我知道你可以用PHP做到这一点,但C#是否有平等,虽然我认为highley不太可能:(

Joe*_*oel 18

Dictionary在C#中被称为a .使用泛型,您实际上可以按任何类型进行索引.像这样:

Dictionary<Person, string> dictionary = new Dictionary<Person, string>();
Person myPerson = new Person(); 
dictionary[myPerson] = "Some String";
...
string someString = dictionary[myPerson];
Console.WriteLine(someString);
Run Code Online (Sandbox Code Playgroud)

这显然会向控制台打印"Some String".

这是字典灵活性的一个例子.您也可以像字符串一样将字符串作为索引来实现.

  • @xandercoded,你可能想要`System.Collections.Generic`.`System.Collections`是.net 1的非泛型形式. (2认同)

Aar*_*ght 6

数组在C#中的工作方式不同,但您可以向任何类添加索引器属性:

class MyClass
{
    public string this[string key]
    {
        get { return GetValue(key); }
        set { SetValue(key, value); }
    }
}
Run Code Online (Sandbox Code Playgroud)

然后你可以写出你对此提出的语句类型:

MyClass c = new MyClass();
c["Name"] = "Bob";
Run Code Online (Sandbox Code Playgroud)

这是怎样的字符串为基础,以索引访问Dictionary<TKey, TValue>,NameValueCollection和类似的类实现.您也可以实现多个索引器,例如,一个用于索引,一个用于名称,您只需使用不同的参数类型添加另一个属性.

几个内置框架类已经有这些索引器,包括:

  • SortedList<TKey, TValue>
  • Dictionary<TKey, TValue>
  • SortedDictionary<TKey, TValue>
  • NameValueCollection
  • Lookup<TKey, TValue>(中System.Linq)

...和更多.这些都是为了略微不同的目的而设计的,因此您需要阅读每一个,并查看哪一个适合您的要求.