将字符串数组分配给二维字符串数组
Posted
技术标签:
【中文标题】将字符串数组分配给二维字符串数组【英文标题】:Assign string array to two dimensional string array 【发布时间】:2021-12-07 15:47:46 【问题描述】:我有点困惑。我尝试。但是得到“错误的索引数量”错误。 我理解错误,但是不能将数组分配给第二维数组字段吗?
由于sortedString
有x
的字段数,每个字段都是一个字符串数组,难道不能将字符串数组分配给一个索引字段吗? (因为s.Split(';')
已经创建了一个数组)
string[,] sortedString = new string[count,columns];
sortedString[counter] = s.Split(';');
【问题讨论】:
您可以使用锯齿状数组:string[][] sortedString = new string[count][];
【参考方案1】:
您将多维数组与锯齿状数组混淆了。 sortedString
是 string
类型的二维数组,因此您必须始终提供正确数量的索引 - 在这种情况下,2。您不能说 sortedString[x]
,只能说 sortedString[x, y]
。
您可能正在考虑锯齿状数组 - 即一维数组,其中每个元素本身就是一个(通常是一维)数组。像这样声明sortedString
:
string[][] sortedString = new string[count][];
这将允许每个“内部”数组具有不同的长度(取决于每个 s
中有多少 ;
),这可能不是您想要的。
【讨论】:
感谢您的帮助。我来自 Java,我不确定我是否曾经正确使用过多维数组。 string[][] sortedString = new string[count][];这工作得很好。谢谢!必须阅读更多相关信息,听起来很有趣。【参考方案2】:C# 有两种二维数组。如果您需要一次访问一个维度作为它自己的数组,则必须使用“锯齿状”变体,如下所示:
string[][] sortedString = new string[count][];
for(int i = 0; i<sortedString.Length;i++)
sortedString[i] = new string[columns];
或者,甚至更好:
var sortedString = new List<string[]>;
【讨论】:
感谢您的帮助。我来自 Java,我不确定我是否曾经正确使用过多维数组。 string[][] sortedString = new string[count][];这工作得很好。谢谢!必须阅读更多相关信息,听起来很有趣。以上是关于将字符串数组分配给二维字符串数组的主要内容,如果未能解决你的问题,请参考以下文章