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::SetElementAtTA贡献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 关注
- 788 浏览
添加回答
举报
