【问题标题】:convert two dimensional string array to two dimensional int array将二维字符串数组转换为二维 int 数组
【发布时间】: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


【解决方案1】:

将“内部”变量的声明更改为

int[,] inner = new int[4,2];

【讨论】:

    猜你喜欢
    • 2019-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-28
    相关资源
    最近更新 更多