数组索引可以用C#命名吗

本文关键字:索引 数组 | 更新日期: 2023-09-27 18:29:03

我想知道是否可以用C#为数组的索引指定一个名称,而不是默认的索引值。我基本上在寻找的是以下PHP代码的C#等价物:

$array = array(
    "foo" => "some foo value",
    "bar" => "some bar value",
);

干杯。

数组索引可以用C#命名吗

PHP将数组的概念和字典(又名哈希表、哈希映射、关联数组)的概念混合到一个array类型中。

在.NET和大多数其他编程环境中,数组总是以数字索引的。对于命名索引,请使用字典:

var dict = new Dictionary<string, string> {
    { "foo", "some foo value" }, 
    { "bar", "some bar value" }
};

与PHP的关联数组不同,.NET中的字典是不排序的。如果您需要一个排序字典(但可能不需要),.NET提供了一个排序的字典类型。

在数组中,没有。但是,有一个非常有用的Dictionary类,它是KeyValuePair对象的集合。它类似于数组,因为它是带有键的对象的可迭代集合,但更一般的是,键可以是任何类型。

示例:

Dictionary<string, int> HeightInInches = new Dictionary<string, int>();
HeightInInches.Add("Joe", 72);
HeightInInches.Add("Elaine", 60);
HeightInInches.Add("Michael", 59);
foreach(KeyValuePair<string, int> person in HeightInInches)
{
    Console.WriteLine(person.Key + " is " + person.Value + " inches tall.");
}

MSDN Dictionary<TKey, TValue> 文档

查看C#中的哈希表。这是一个数据结构,可以在C#中实现您想要的功能。

您可以使用Dictionary<string, FooValue>或类似的类型或集合类型,或者,如果必须坚持使用数组,则使用标签定义Enum