创建空数组并添加值导致"数组索引超出范围"

tes*_*ing 2 c# arrays string initialization

这有什么不对?

string[] keysDictionary = new string[]{};
keysDictionary [0] = "test";
Run Code Online (Sandbox Code Playgroud)

我明白了

System.IndexOutOfRangeException数组索引超出范围.

Ben*_*son 6

您不能向 0 长度数组添加任何内容。您实际上是在尝试设置没有元素的数组的第一个元素的值。如果您想这样做,请改用列表之类的东西,数组无法调整大小。

var keysDictionary = new List<string>();
keysDicionary.Add("test");
Run Code Online (Sandbox Code Playgroud)

  • 由于第 2 行中的错字,这个答案甚至无法编译时,它怎么会得到赞成票? (2认同)

cod*_*sed 5

通过声明{}您将其定义为空数组.

因此,您应该将大小定义为:

string[] keysDictionary = new string[1];
keysDictionary [0] = "test";
Run Code Online (Sandbox Code Playgroud)

要么

像这样初始化:

string[] keysDictionary = new string[]{"test"};
Run Code Online (Sandbox Code Playgroud)