C# C语言中的字典数组#

C# C语言中的字典数组#,c#,arrays,dictionary,C#,Arrays,Dictionary,我想用这样的方式: Dictionary<int, string>[] matrix = new Dictionary<int, string>[2]; 它抛出“'TargetInvocationException'…调用的目标已抛出异常。” 有什么问题?我是否正确使用了该字典数组?您已初始化数组,但未初始化字典。您需要初始化矩阵[0](尽管这会导致空引用异常)。尝试以下操作: Dictionary<int, string>[] matrix = new D

我想用这样的方式:

Dictionary<int, string>[] matrix = new Dictionary<int, string>[2];
它抛出“'TargetInvocationException'…调用的目标已抛出异常。”


有什么问题?我是否正确使用了该字典数组?

您已初始化数组,但未初始化字典。您需要初始化矩阵[0](尽管这会导致空引用异常)。

尝试以下操作:

Dictionary<int, string>[] matrix = new Dictionary<int, string>[] 
{
    new Dictionary<int, string>(),
    new Dictionary<int, string>()
};
字典[]矩阵=新字典[]
{
新字典(),
新字典()
};

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

是否将数组对象设置为字典实例

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");
Dictionary[]矩阵=新字典[2];
矩阵[0]=新字典();
矩阵[1]=新字典();
矩阵[0]。添加(0,“第一个str”);

您忘了初始化字典。只需在添加项目之前的下方添加一行:

matrix[0] = new Dictionary<int, string>();
矩阵[0]=新字典();
字典[]矩阵=新字典[2];
这样做会分配数组“matrix”,但该数组中应该包含的字典从未实例化。必须使用new关键字在数组中的所有单元格中创建Dictionary对象

matrix[0] = new Dictionary<int, string>();
matrix[0].Add(0, "first str");
矩阵[0]=新字典();
矩阵[0]。添加(0,“第一个str”);

Hmmm,您应该得到一个
NullReferenceException
。显示更多代码。是否已将
矩阵[0]
初始化为新的
字典
?另外,
TargetInvocationException
System.Reflection
命名空间的一部分。您在哪里使用反射?您还可以将“new Dictionary[]”简化为“new[]”简单而优雅!
Dictionary<int, string>[] matrix = new Dictionary<int, string>[2];
matrix[0] = new Dictionary<int, string>();
matrix[0].Add(0, "first str");