3 回答
TA贡献1826条经验 获得超6个赞
static void SetElementAt(int[][] array, int i, int j, int value){ array[i][j] = value;}static void SetElementAt(int[,] array, int i, int j, int value){ array[i, j] = value;}
.method private hidebysig static void SetElementAt(int32[][] 'array', int32 i, int32 j, int32 'value') cil managed{ // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.0 IL_0001: ldarg.1 IL_0002: ldelem.ref IL_0003: ldarg.2 IL_0004: ldarg.3 IL_0005: stelem.i4 IL_0006: ret} // end of method Program::SetElementAt.method private hidebysig static void SetElementAt(int32[0...,0...] 'array', int32 i, int32 j, int32 'value') cil managed{ // Code size 10 (0xa) .maxstack 8 IL_0000: ldarg.0 IL_0001: ldarg.1 IL_0002: ldarg.2 IL_0003: ldarg.3 IL_0004: call instance void int32[0...,0...]::Set(int32, int32, int32) IL_0009: ret} // end of method Program::SetElementAt
TA贡献1801条经验 获得超8个赞
简单地说,多维数组类似于DBMS中的表。
数组(锯齿数组)允许每个元素持有相同类型的变量长度的另一个数组。
因此,如果您确信数据的结构看起来像一个表(固定行/列),则可以使用多维数组。锯齿数组是固定的元素&每个元素都可以容纳一个可变长度的数组。
例如:Psuedocode:
int[,] data = new int[2,2];
data[0,0] = 1;
data[0,1] = 2;
data[1,0] = 3;
data[1,1] = 4;
将上面的内容看作是一个2x2表:
1 | 2
3 | 4
int[][] jagged = new int[3][];
jagged[0] = new int[4] { 1, 2, 3, 4 };
jagged[1] = new int[2] { 11, 12 };
jagged[2] = new int[3] { 21, 22, 23 };
假设上面的每一行都有可变的列数:
1 | 2 | 3 | 4
11 | 12
21 | 22 | 23
- 3 回答
- 0 关注
- 712 浏览
添加回答
举报