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