【问题标题】:How to continue iteration in nested foreach如何在嵌套的foreach中继续迭代
【发布时间】:2016-04-07 05:35:37
【问题描述】:

这是我的简单示例:

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 中看到12345678910, 11, 12, 13, 14, 15, 16, 17, 18 但它给了我 3 次 14, @3 987654342@、456

这可能是我想要的吗?

【问题讨论】:

    标签: c# loops iteration


    【解决方案1】:

    计数器“resets”本身的原因是因为你指示它这样做:

    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++;
        }
    }
    

    【讨论】:

    • 小细节会导致这样的大问题。非常感谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-21
    • 1970-01-01
    • 2017-09-30
    • 1970-01-01
    • 2011-03-25
    • 1970-01-01
    相关资源
    最近更新 更多