int[][] myArray = new int[10][];
foreach (int[] eachArray in myArray) {
eachArray = new int[2]
}
我相信它应该创建一个数组
{ 0 , 0 }
{0 , 0}
.........
锯齿状阵列好混乱……
int[][] myArray = new int[10][];
foreach (int[] eachArray in myArray) {
eachArray = new int[2]
}
我相信它应该创建一个数组
{ 0 , 0 }
{0 , 0}
.........
锯齿状阵列好混乱……
这不会创建您正在寻找的锯齿状数组。它试图将新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();