以字面方式定义数组和键 - C#

时间:2011-06-29 19:47:02

标签: c# arrays key-value

试图巩固这个......

string[] array = new string[];

array[0] = "Index 0";
array[3] = "Index 3";
array[4] = "index 4";

分成一行......

PHP中的示例

$array = array( 0 => "Index 0", 3 => "Index 3", 4 => "Index 4" );

我知道我可以做到这一点

string[] array = { "string1", "string2", "string3" }

但我怎么能在那里得到合适的索引?

4 个答案:

答案 0 :(得分:10)

听起来你真的在Dictionary<int, string>之后而不是传统的C#数组:

var dictionary = new Dictionary<int, string>
{
    { 0, "Index 0" },
    { 3, "Index 3" },
    { 4, "Index 4" }
};

答案 1 :(得分:4)

在C#中你不能。如果你想要特定的索引,你必须传入null值来保存空对象的位置。

听起来你真的在Dictionary<TKey, TValue>之后。

答案 2 :(得分:2)

据我所知,你不能跳过常规数组中的索引号(例如0,1,2,然后是4而不是3)。您需要使用不同的数据结构,如Dictionary或Hashtable。

Hashtable ht = new Hashtable()
{
    {"key1", "value1"},
    {"key2", "value2"}
};

答案 3 :(得分:0)

根据我的理解,你不能以你想要的方式定义数组。其他海报表明你可以使用关联数组(Dictionaries)

最多可以创建一个解决方法:

string[] array = {"array0", "", "array2", "array3"};

string[] array = new string[4]; array[0] = "array0"; array[2] = "array2";