【问题标题】:Printing different arrays in one for loop在一个 for 循环中打印不同的数组
【发布时间】:2019-03-22 09:55:39
【问题描述】:

我有多个 List,每个 List 都使用.ToArray() 方法转换为数组。每个数组大小各不相同,数组名称为DataArray0DataArray1DataArray2------DataArrayN。我想在 for 循环中打印这些数组的值,这样我就不必为每个数组编写多个 Console.WriteLine 语句。

在 C# 中有什么方法可以写出类似的东西:

for (int jj = 0; jj < colCount; jj++)
{
    for (int jjj = 0; jjj < rowCount; jjj++)
    {
        Console.WriteLine(DataArray+[jj]+[jjj]);
    }
}

我希望它首先打印出DataArray0 的数据,然后是DataArray1 等等。 该代码只是为了更好地了解我的问题。我知道打印语句会出错。

【问题讨论】:

  • 尝试为您的打印方法使用递归..
  • 你能否展示一个你所拥有的数据结构的例子,这样人们就不会想象你想要迭代什么?

标签: c# arrays list


【解决方案1】:

您应该创建数组数组并添加额外的循环。

然后在每个数组的某个位置打印元素:

var arrays = new DataArray[] { DataArray0, DataArray1, ...} // use correct type

for (int jj = 0; jj < colCount; jj++)
{
    for (int jjj = 0; jjj < rowCount; jjj++)
    {
        for (var arrayIndex = 0; arrayIndex < arrays.Length; a++)
        {  
            Console.WriteLine(arrays[arrayIndex][jj][jjj]);
        }
    }
}

一个接一个地打印一个数组:

for (var arrayIndex = 0; arrayIndex < arrays.Length; a++)
{
    for (int jj = 0; jj < colCount; jj++)
    {
        for (int jjj = 0; jjj < rowCount; jjj++)
        {
            Console.WriteLine(arrays[arrayIndex][jj][jjj]);
        }
    }
}

【讨论】:

    【解决方案2】:

    所以根据我收集到的信息,您有一个列表(或数组,没关系)。

    您可以使用 foreach 对它们进行迭代:

    var list_of_lists = new List<List<int>>{
        new List<int>{1,2},
        new List<int>{3,4,5},
    
    };
    
    foreach (var item in list_of_lists)
    {
        foreach (var nested_item in item)
        {
            Console.WriteLine(nested_item);
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-11-01
      • 2021-01-28
      • 2020-09-08
      • 1970-01-01
      • 1970-01-01
      • 2013-02-20
      相关资源
      最近更新 更多