C# 使用For循环添加到列表列表时出错(ArgumentOutOfRangeException)

C# 使用For循环添加到列表列表时出错(ArgumentOutOfRangeException),c#,list,unity3d,C#,List,Unity3d,第一次来这里。StackOverflow在某种程度上帮助我对数组和列表进行了修改,但我遇到了一个我在别处看不到答案的问题 目标:获取一个现有的多维数组,读取每一行,如果它以正确的标识符开头,则将该行拉入列表。每个列表都成为我列表的一部分 问题是:如果使用newGrid[0].Add(CSVReader.grid[x,y]);在它下面运行良好。但是如果我使用[y]而不是[0],我会得到一个异常。在我得到异常的时候y不是等于0吗?我想使用for循环的y使从数组中提取的每一行成为一个新列表 p

第一次来这里。StackOverflow在某种程度上帮助我对数组和列表进行了修改,但我遇到了一个我在别处看不到答案的问题

目标:获取一个现有的多维数组,读取每一行,如果它以正确的标识符开头,则将该行拉入列表。每个列表都成为我列表的一部分

问题是:如果使用newGrid[0].Add(CSVReader.grid[x,y]);在它下面运行良好。但是如果我使用[y]而不是[0],我会得到一个异常。在我得到异常的时候y不是等于0吗?我想使用for循环的y使从数组中提取的每一行成为一个新列表

    public void processCSV () {

    List<List<string>> newGrid = new List<List<string>>();

    for (int y = 0; y < CSVReader.grid.GetUpperBound(1); y++) {
        if (CSVReader.grid[0,y] == "T1") {
            newGrid.Add(new List<string>());
            for (int x = 0; x < CSVReader.grid.GetUpperBound(0); x++) {
                newGrid[y].Add(CSVReader.grid[x,y]);    
            }
            foreach(string item in newGrid[y]) {    
                print(item);
            }

        }
    }
}
public void processCSV(){
List newGrid=newlist();
for(int y=0;y
您的
新网格中的行号与
CSVReader.grid中的行号不匹配,因为您只从源数组复制了一些行

不要重复使用
y
而是在每次调用
newGrid时使用单独的变量对
newGrid
中的行进行计数。添加
或只是将元素添加到最后一行。

因为newGrid.Add(new List());在IF语句中,y不一定与列表中的项目数对应。。这可能是你的问题吗?是的,你是对的,谢谢!希望我能投赞成票,但显然我需要先获得一些声誉;)