将foreach与锯齿数组一起使用

本文关键字:一起 数组 foreach | 更新日期: 2023-09-27 18:22:13

int[][] myArray = new int[10][];
foreach (int[] eachArray in myArray) {
eachArray = new int[2]
}

我相信它应该创建一个数组

{ 0 , 0 }
{0 , 0}
.........

锯齿状数组太混乱了.....

将foreach与锯齿数组一起使用

这不会创建您要查找的交错数组。 它尝试将新的int[2]实例分配给迭代变量,而不是原始数组中的槽。 这甚至不会编译,因为编译器将迭代变量视为readonly

执行此操作的方法是使用 for 循环

for (var i = 0; i < myArray.Length; i++) {
  myArray[i] = new int[2];
}

不允许在循环中分配给循环foreach变量。你需要一个带有计数器的常规for循环,或者你可以尝试一些稍微花哨的东西:

int[][] myArray = Enumerable.Range(0, 10).Select(i => new int[2]).ToArray();