【问题标题】:Assign string array to two dimensional string array将字符串数组分配给二维字符串数组
【发布时间】:2021-12-07 15:47:46
【问题描述】:

我有点困惑。我尝试将字符串数组分配给二维字符串数组。但是得到“错误的索引数量”错误。 我理解错误,但是不能将数组分配给第二维数组字段吗?

由于sortedStringx 的字段数,每个字段都是一个字符串数组,难道不能将字符串数组分配给一个索引字段吗? (因为s.Split(';') 已经创建了一个数组)

string[,] sortedString = new string[count,columns];
sortedString[counter] = s.Split(';');

【问题讨论】:

  • 您可以使用锯齿状数组:string[][] sortedString = new string[count][];

标签: c# arrays string multidimensional-array


【解决方案1】:

您将多维数组与锯齿状数组混淆了。 sortedStringstring 类型的二维数组,因此您必须始终提供正确数量的索引 - 在这种情况下,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][];这工作得很好。谢谢!必须阅读更多相关信息,听起来很有趣。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-27
  • 1970-01-01
  • 2019-09-04
  • 1970-01-01
  • 2010-10-09
相关资源
最近更新 更多