C#使用二维数组储存数据时报错

在Unity中使用二维数组进行遍历储存数据时报错

using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.SceneManagement;



public class Answer_four : MonoBehaviour
{
    //读取文档
    string[][] ArrayX;
    string[] lineArray;
    public int topicMax = 3;//最大题数
    private List<bool> isAnserList = new List<bool>();//存放是否答过题的状态
    //加载题目
    Button[] Buttonlist = new Button[27];//答题Button
    public Text indexText;//当前第几题
    public Text TM_Text;//当前回答
    public List<Text> DA_TextList;//选项
    private int topicIndex = 0;//第几题
    public Text tipsText;//提示信息
    public List<int> Qarray;//存放现有题目数组
    int PosFlag = 0; //位置
    string[] ArrayA = new string[9];//答题数组


    void Start()
    {
        GameObject BtnGroup = GameObject.Find("ButtonGroup");
        //赋值各个按钮
        for(int i=0;itransform.childCount;i++)
        {
            Buttonlist[i] = BtnGroup.transform.GetChild(i).GetComponent

img

以下答案引用自GPT-3大模型,请合理使用:

谢谢!

答:

C#使用二维数组进行遍历储存数据时报错的原因是在创建二维数组ArrayX的时候,其所有的一位数组的长度都没有定义,而在后面的程序中又尝试使用了ArrayX[i][j]来存取数据,从而导致一位数组的长度没有定义导致的异常。

解决方法:

1、在创建二维数组ArrayX的时候指定一位数组的长度,如:
string[][] ArrayX = new string[lineArray.Length][3];//3为此处ArrayX中一位数组的长度
2、在使用ArrayX[i][j]语句前进行下列判断,如:
if (ArrayX[i].Length > j) //需要注意的是ArrayX[i].Length可能会大于ArrayX创建时申明的长度
{
    ArrayX[i][j] = lineArray[i].Substring(j, 1);
}

如果我的回答解决了您的问题,请采纳我的回答