【发布时间】:2013-05-23 22:56:20
【问题描述】:
我正在尝试将二维字符串数组转换为二维 int 数组:
int[][] inner = new int[4][];
string[][] arr = new string[4][]
{
new string[] {"11"},
new string[] {"12"},
new string[] {"21"},
new string[] {"22"}
};
for (int i = 0; i < arr.Length; i++)
{
string name = string.Join(".", arr[i]);
for (int j = 0; j < name.Length; j++)
{
inner[i][j] = Convert.ToInt32(name.Substring(j,1));
}
}
但我得到以下异常:
对象引用未设置为对象的实例
在:
inner[i][j] = Convert.ToInt32(name.Substring(j,1));
【问题讨论】:
-
NullReferenceException的几乎所有情况都是相同的。请参阅“What is a NullReferenceException in .NET?”获取一些提示。 -
inner[0]为空。这将导致您看到的 NRE。 -
在那一行打个断点,看看什么是空的,很简单。
-
您已经创建了一个二维数组,但只填充了一维。使用 j 变量迭代的数组都是空的,所以你最终调用 null.Substring 导致异常
标签: c# arrays string int nullreferenceexception