【问题标题】:Get an array of string from a jagged array [closed]从锯齿状数组中获取字符串数组[关闭]
【发布时间】:2016-12-12 07:25:01
【问题描述】:

我有一个包含其他一维字符串数组的锯齿状数组:

string[] first = {"one","two"};
string[] second = {"three","four"};
string[][] jagged = {first,second};

当我尝试获取子数组时,它们给出了一个空值(我可能做错了什么):

foreach (string[] arr in jagged[][]) {
    // My stuff here
}

是我在数组初始化过程中做错了什么还是我必须以某种方式转换子数组?

【问题讨论】:

  • 什么具体代码导致什么具体错误? (是的,你可能做错了什么,但如果你不展示你在做什么,我们怎么知道?)
  • 只是出于好奇:当 .NET 有这么多更好、更易于使用的集合选项时,为什么还要使用这样的数组?它是一种功能齐全的面向对象的编程语言,而不是脚本语言。充分利用这一点。
  • 这还能编译吗? foreach (string[] arr in jagged[][]) 看起来不像是有效的语法。
  • 你能发布给你带来null的帖子吗?因为这不能编译 - ... in jagged[][]..
  • 肯定in jagged[][] 无效

标签: c# arrays jagged-arrays


【解决方案1】:

只是 foreach 部分是错误的。 我已经对其进行了如下测试:

string[] first = { "one", "two" };
string[] second = {"three","four"};
string[][] jagged = {first,second};

foreach (string[] arr in jagged)
{
    Console.WriteLine(string.Join(",", arr));
}

输出:

一,二

三、四

【讨论】:

    【解决方案2】:

    应该是:

    foreach (string[] arr in jagged)
    {
        // My stuff here
    }
    

    我将您的代码粘贴到我的本地环境中,并且可以很好地迭代。

    【讨论】:

      【解决方案3】:

      如果您在循环中使用jagged[][],那么您可能会收到类型转换失败的消息:

      无法将类型“char”转换为“string”。

      改为在循环中使用jagged

      public class Program
      {
          public static void Main()
          {
              string[] first = {"one","two"};
              string[] second = {"three","four"};
              string[][] jagged = {first,second}; 
      
              foreach (string[] arr in jagged)
              {
                  //Your code
              }
          }
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-12-09
        • 2021-12-14
        • 1970-01-01
        • 2016-12-20
        • 1970-01-01
        • 1970-01-01
        • 2019-08-19
        • 1970-01-01
        相关资源
        最近更新 更多