我想初始化一个数组数组,如java:
int[][] arrPos=new int[16][48];
int[][] arrPosOther=new int[16][48];
我可以像这样设置一个行数组:
arrPos[0]=arrPosOther[0];
我可以像这样设置一个单元格值:
arrPos[1][0]=125;
但是在C#中,我只能声明:
int[][] arrPos=new int[16][];
无法在初始化中设置列值。
答案 0 :(得分:3)
您似乎正在尝试在c#中找到初始化Jagged数组的方法:请参考以下示例:
int[][] jaggedArray2 = new int[][]
{
new int[] {1,3,5,7,9},
new int[] {0,2,4,6},
new int[] {11,22}
};
同一样本的简写形式如下所示:
int[][] jaggedArray2 =
{
new int[] {1,3,5,7,9},
new int[] {0,2,4,6},
new int[] {11,22}
};
您还可以通过几个步骤执行初始化:
int[][] jaggedArray = new int[3][];
jaggedArray[0] = new int[5];
jaggedArray[1] = new int[4];
jaggedArray[2] = new int[2];
jaggedArray[0] = new int[] { 1, 3, 5, 7, 9 };
jaggedArray[1] = new int[] { 0, 2, 4, 6 };
jaggedArray[2] = new int[] { 11, 22 };
显然,您可以实现一种for
或foreach
循环,以便从某些数据结构填充数组。更多信息请参阅:http://msdn.microsoft.com/en-us/library/2s05feca.aspx
此外,您应该考虑使用多维数组,例如int[,]
(在这种情况下,C#语法与Java语言不同)。
希望这会有所帮助。
答案 1 :(得分:1)
您正在寻找没有语法。
一个声明选项可能是
int[][] arrPos = Enumerable.Range(0, length).Select(_ => new int[length]).ToArray();