C#中的字典数组

hra*_*cek 17 c# arrays dictionary

我想用这样的东西:

Dictionary<int, string>[] matrix = new Dictionary<int, string>[2];
Run Code Online (Sandbox Code Playgroud)

但是,当我这样做时:

matrix[0].Add(0, "first str");
Run Code Online (Sandbox Code Playgroud)

它抛出"'TargetInvocationException'...调用目标抛出了异常."

问题是什么?我正确使用那个字典数组吗?

And*_*are 24

试试这个:

Dictionary<int, string>[] matrix = new Dictionary<int, string>[] 
{
    new Dictionary<int, string>(),
    new Dictionary<int, string>()
};
Run Code Online (Sandbox Code Playgroud)

您需要先在数组中实例化字典,然后才能使用它们.

  • 你也可以将"new Dictionary <int,string> []"简化为"new []" (7认同)

ken*_*ken 10

您是否将数组对象设置为Dictionary实例?

Dictionary<int, string>[] matrix = new Dictionary<int, string>[2];
matrix[0] = new Dictionary<int, string>();
matrix[1] = new Dictionary<int, string>();
matrix[0].Add(0, "first str");
Run Code Online (Sandbox Code Playgroud)


Tho*_*sen 7

Dictionary<int, string>[] matrix = new Dictionary<int, string>[2];
Run Code Online (Sandbox Code Playgroud)

这样做会分配数组“matrix”,但应该包含在该数组中的字典永远不会被实例化。您必须使用 new 关键字在数组的所有单元格中创建一个 Dictionary 对象。

matrix[0] = new Dictionary<int, string>();
matrix[0].Add(0, "first str");
Run Code Online (Sandbox Code Playgroud)