语法略有不同,但它们之间有什么区别。
public static string[][] str1 = { new string[] { Total, "N2" }};
public static string[,] str2 = { { Total, "N2" } };
每种方法的使用指南是什么?
答案 0 :(得分:6)
看看这里: https://msdn.microsoft.com/en-us/library/2s05feca.aspx
基本上,差异在于如何分配内存。 [,]表示法将在一个块中分配所有需要的内存,而[] []表示法将分配一个指向数组的指针数组,其中每个数组都是单独分配的,不一定与其他数组相邻
答案 1 :(得分:0)
在你引用的例子中:
public static string[][] str1 = { new string[] { Total, "N2" }};
public static string[,] str2 = { { Total, "N2" } };
第一个是数组数组( Jagged Array )。每个条目都可以指向一个字符串数组。
第二个是普通的二维数组(多维数组)。
答案 2 :(得分:0)
简而言之,[,]是一次性分配的二维数组,而[] []是一个数组数组,因此内存分配是渐进的 - 初始化语法(如你所指出的)也是不同的。
另一个重要的区别是,在[] []类型中,您可以定义不同大小的每个“行”。你不能在[,]中做,这是一种矩阵的C#表示。