我有点糊涂了。我尝试将一个字符串数组赋值给一个二维字符串数组。但是得到了"错误的指数"。错误。我理解的错误,但它不应该分配一个数组到第二次元数组字段吗?
作为sortedString
有x
个字段与每个字符串数组,它不应该分配一个字符串数组只是一个索引字段吗?(因为s.Split(';')
已经创建了一个数组)
string[,] sortedString = new string[count,columns];
sortedString[counter] = s.Split(';');
您混淆了多维数组和锯齿数组。sortedString
是string
类型的二维数组,因此您必须始终提供正确的索引数—在本例中为2。你不能说sortedString[x]
,只能说sortedString[x, y]
。
你可能想到的是一个锯齿数组——即,一个单维数组,其中每个元素本身是一个(通常是单维)数组。像这样声明sortedString
:
string[][] sortedString = new string[count][];
这将允许每个"inner"数组必须具有不同的长度(取决于每个s
中有多少个;
),这可能不是您想要的。
c#有两种2D数组。如果你需要一次访问一个维度作为它自己的数组,你必须使用"jagged"变化,像这样:
string[][] sortedString = new string[count][];
for(int i = 0; i<sortedString.Length;i++)
sortedString[i] = new string[columns];
或者更好:
var sortedString = new List<string[]>;