首先定义不同
多维数组:private int[,] _multi ;
数组的数组(也即锯齿数组)private int [][] _jagged;
再次实例化不同
多维:_multi=new int [10,10];
锯齿数组:_jagged=new int[2][];
_jagged[0]=new int[5];
-jagged[1]=new int[9];
第3访问遍历方式不同:
多维:
foreach(int e in _multi)
{
Console.Write(e.ToString());
}
锯齿数组:
foreach(int[] row in _multi)
{
foreach(int[] e in row)
{
Console.Write(e.ToString());
}
}
第4可定义维度不同
多维的每个维度固定,锯齿数组每个维度不固定,因此得名锯齿数组。
最后性能的差异:
多维:维度长度固定,利用这个特性,编译器可以生产更加高效的初始代码,
锯齿:数组越大维数越多,初始化的代码越多,列方向遍历的效率低
多维数组:private int[,] _multi ;
数组的数组(也即锯齿数组)private int [][] _jagged;
再次实例化不同
多维:_multi=new int [10,10];
锯齿数组:_jagged=new int[2][];
_jagged[0]=new int[5];
-jagged[1]=new int[9];
第3访问遍历方式不同:
多维:
foreach(int e in _multi)
{
Console.Write(e.ToString());
}
锯齿数组:
foreach(int[] row in _multi)
{
foreach(int[] e in row)
{
Console.Write(e.ToString());
}
}
第4可定义维度不同
多维的每个维度固定,锯齿数组每个维度不固定,因此得名锯齿数组。
最后性能的差异:
多维:维度长度固定,利用这个特性,编译器可以生产更加高效的初始代码,
锯齿:数组越大维数越多,初始化的代码越多,列方向遍历的效率低

浙公网安备 33010602011771号