String [] []在C#中的含义是什么?

时间:2012-03-23 05:18:00

标签: c#

EG。

String [ ][ ] LinesSplitByComma1 =
    File.ReadAllLines("Filepath").Select(s => s.Split(',')).ToArray();

3 个答案:

答案 0 :(得分:10)

字符串数组数组。

它正在读取文件并创建一个数组,其中每个元素都是文件中的一行,由用逗号分隔该行创建的字符串数组表示。

这样的文件
a,b,c
1,2,3
asdas,ertert,xcvxcvx

将表示为

LinesSplitByComma1[0][0] = "a"
LinesSplitByComma1[0][1] = "b"
LinesSplitByComma1[0][2] = "c"
LinesSplitByComma1[1][0] = "1"
LinesSplitByComma1[1][1] = "2"
LinesSplitByComma1[1][2] = "3"
LinesSplitByComma1[2][0] = "asdas"
LinesSplitByComma1[2][1] = "ertert"
LinesSplitByComma1[2][2] = "xcvxcvx"

答案 1 :(得分:1)

这是一个字符串数组的数组。在您的特定情况下,您有一个行数组,每行都被分成一个逗号分隔的标记数组。

string[][] lines  = File.ReadAllLines("Filepath").Select(s => s.Split(',')).ToArray();
string[]   tokens = lines[i];
string     token  = tokens[j];

答案 2 :(得分:1)

这是一个“锯齿状”阵列;一串字符串数组。它是“二维阵列”的一种形式;另一个是“矩形数组”,可以声明为string[,]

差异是名称中固有的;锯齿状数组的子数组每个都可以有不同数量的值,而矩形数组的子数组每个都有相同的长度。

在记忆中,它们看起来非常不同。锯齿状数组最初被创建为一个指向其他数组的“指针”数组,并且当锯齿状数组被初始化时,构成构造的第二维的数组分别在第一个“桶”中单独创建和引用。维数组:

string[][] jaggedArray = new string[3][]; //the first dimension contains three elements
jaggedArray[0] = new string[5]; //now the first element is an array of 5 elements.
jaggedArray[1] = new string[4]; //the second element's array can be a different length.
jaggedArray[0][2] = "Test";
var secondDim = jaggedArray[1]; //A higher-dimension array of a jagged array can be independently referenced.

但是,矩形阵列一次创建为单个内存块:

string[,] rectArray = new string[3,5]; //the entire 3x5 block of string refs is now reserved.
rectArray[0,4] = "Test"; //we didn't have to declare the second-dimension array.
//However, the following will not compile:
var secondDim = rectArray[1]; //a rectangular array's higher dimensions can't be "severed".