foreach

foreach 用于迭代数组的元素或实现 IEnumerable 的集合中的项目。

var lines = new string[] { 
    "Hello world!", 
    "How are you doing today?", 
    "Goodbye"
};

foreach (string line in lines)
{
    Console.WriteLine(line);
}

这将输出

“Hello World!”
“今天过得好吗?”
再见

.NET 小提琴现场演示

你可以使用 break 关键字在任何时候退出 foreach 循环,或使用 continue 关键字继续下一次迭代。

var numbers = new int[] {1, 2, 3, 4, 5, 6};

foreach (var number in numbers)
{
    // Skip if 2
    if (number == 2)
        continue;

    // Stop iteration if 5
    if (number == 5)
        break;

    Console.Write(number + ", ");
}

// Prints: 1, 3, 4, 

.NET 小提琴现场演示

请注意,迭代的顺序适用于某些集合,例如数组和 List,但不能保证许多其他集合。

✝虽然 IEnumerable 通常用于表示可枚举的集合,但 foreach 仅要求集合公开公开 object GetEnumerator() 方法,该方法应返回暴露 bool MoveNext() 方法和 object Current { get; } 属性的对象。