遍历列表数组

Traversing through a array of lists

假设我有一个 array of lists

我的

假设我想遍历第一个列表(这将是我数组中的元素 0)然后停止。这可能吗?

我现在正在使用

for(int i = 0; i < myArr[0].count; i++)
{
  do stuff
  IF the array has gone to the next element  in the ARRAY (Not the first    LIST) Then break out of for loop
}

但它正在遍历整个数组(因此有 7 个列表)!我希望它只遍历数组中的第一个列表。有什么想法吗?

例如,如果我有

[0][0] = "cat"
[0][1] = "dog"
[1][0] = "seal"

我只想遍历直到我得到猫和狗(或直到第一个列表被遍历)我不关心 seal 和我的数组元素中包含的其余列表对于这个特定案例

Suppose i want to traverse through the FIRST list (which would be element 0 in my array) and then STOP. Is that possible?

是的。

你的例子不是很有用。您几乎可以在任何地方使用 break 语句停止 for 语句...

for(int i = 0; i < 10; i++)
{
  if (i = 5) // any condition really...
  {
    break;
  }
}

例如:

for(int i = 0; i < 10; i++)
{
  if (i = 5)
  {
    break;
  }
  Console.WriteLine(i);
}

输出:

0

1

2

3

4

你的代码其实没有问题。这应该有效:

for(int i = 0; i < myArr[0].Count; i++) Console.WriteLine(myArr[0][i]);

您可以使用 LINQ 来完成此操作

using System.Linq;

...

var firstList = myArr.Take(1);
foreach(var item in firstList)
{
   // ...
}

假设我们创建了一个列表数组,如下所示:

List<string>[] myArr = new List<string>[2];
myArr[0] = new List<string>(new string[] { "cat", "dog" });
myArr[1] = new List<string>(new string[] { "seal" });

然后我们可以像这样遍历(并打印)第一个数组:

for (int i = 0; i < myArr[0].Count; i++)
    System.Console.WriteLine(myArr[0][i]);