C# 这两种声明数组的方法有什么区别?
以下两者之间的区别是什么:C# 这两种声明数组的方法有什么区别?,c#,C#,以下两者之间的区别是什么: int [][] myArray; 及 第一个是交错数组:数组中的每个项都是另一个数组 int[][] jaggedArray = new int[3][]; jaggedArray[0] = new int[5]; jaggedArray[1] = new int[4]; jaggedArray[2] = new int[2]; 第二个是多维数组,也称为矩阵 int[,] array = new int[4, 2]; // create a 4 by 2 mat
int [][] myArray;
及
第一个是交错数组:数组中的每个项都是另一个数组
int[][] jaggedArray = new int[3][];
jaggedArray[0] = new int[5];
jaggedArray[1] = new int[4];
jaggedArray[2] = new int[2];
第二个是多维数组,也称为矩阵
int[,] array = new int[4, 2]; // create a 4 by 2 matrix
第一个是锯齿状数组,另一个是多维数组——不同之处在于锯齿状数组的元素可以具有不同的维度和大小
myArray
是一个数组或数组数组。myArray
的每个元素本身就是一个int[]
myOtherArray
是一个-直接包含所有数据的单个对象
你应该使用哪一种取决于具体情况。有时,为数据的每一“行”设置一个数组是很方便的(能够替换整行,并且具有不同长度的行),而在其他时候,强制统一布局是有意义的。这必须是重复的。一个是锯齿阵列,一个是二维阵列。您应该可以从这里开始使用。这两个语句都声明了未初始化的多维整数数组。第一种是锯齿状阵列,第二种是二维阵列 可以在声明二维数组的同时对其进行初始化,如下所示:
int[,]array4={{1,2},{3,4},{5,6},{7,8}代码>
或者
int[,]数组=新的int[4,2]代码>
参考官方版本:锯齿状阵列:
int [][] myArray;
矩形阵列:
int [,] myOtherArray;
引述:
矩形和矩形的结构
锯齿状阵列具有显著的优势
不一样
一维数组具有特定的属性
CIL中允许
它们需要针对性能进行优化。
矩形阵列没有这些属性
指令,并且没有优化到
同样的水平。正因为如此,它
有时可以更有效地使用
一维交错阵列
可以优化的阵列比
矩形数组,它不能。在…上
另一方面,程序设计
对于一个企业来说,复杂性可能更小
矩形阵列,因为它可以
将其视为单个单元,而不是
数组的数组
我发现理解它的最好方法是查看它的图形表示=)
看起来像这样
[0] - [0]
[1] - [0][1]
[2] - [0][1][2][3]
[0,0][0,1][0,2][0,3]
[1,0][1,1][1,2][1,3]
[2,0][2,1][2,2][2,3]
而二维
int[,] twodimensional = new int[3,4]
看起来像这样
[0] - [0]
[1] - [0][1]
[2] - [0][1][2][3]
[0,0][0,1][0,2][0,3]
[1,0][1,1][1,2][1,3]
[2,0][2,1][2,2][2,3]
您能否详细说明或提供资源,说明哪种用途更合适?@smartcaveman:恐怕不容易。将有非常具体的情况的利弊。如果你给我一个特殊的情况,我可以给出一些想法。注意,混合使用这两种技术——制作一个不规则的多维数组——是合法的,但几乎肯定是个坏主意。这使得代码很难阅读。有关详细信息,请参阅我的文章。