如何在嵌套foreach中继续迭代

本文关键字:继续 迭代 foreach 嵌套 | 更新日期: 2023-09-27 18:28:51

下面是我的简单示例:

IList<string> files = new string[] { "file1", "file2", "file3" };
IList<string> words = new string[] { "first", "second", "third", "fourth", "fifth", "sixth" };
foreach (var file in files) {
    int i = 1;
    foreach (var word in words) {
        MessageBox.Show(i.ToString());
        i++;
    }
}

每次迭代后,我都想在MessageBox中看到123456789101112131415161718,但它给了我3次123456

有可能是我想要的吗?

如何在嵌套foreach中继续迭代

计数器"重置"本身的原因是因为您指示它这样做:

foreach (var file in files) {
    int i = 1;               //<--- for each file, reset the counter i to 1
    foreach (var word in words) {
        MessageBox.Show(i.ToString());
        i++;
    }
}

你可以通过初始化外循环外的计数器来获得你想要的行为:

int i = 1;                   //<--- initialize outside outer loop
foreach (var file in files) {
    foreach (var word in words) {
        MessageBox.Show(i.ToString());
        i++;
    }
}