foreach 是 C# 中用于遍历数组或集合的只读循环结构,语法为 foreach (类型 变量 in 集合),自动迭代元素并赋值给变量,适用于实现 IEnumerable 的类型,如数组、List;遍历时不可修改集合结构或元素,否则引发异常,适合只读场景,若需修改应使用 for 循环。

foreach 是 C# 中一种简洁、安全的循环结构,用于遍历数组、集合或其他可枚举类型(实现了 IEnumerable 或 IEnumerable 的类型)。它不需要手动管理索引或迭代器,适合只读访问元素。
基本语法
foreach 循环的基本格式如下:foreach (元素类型 变量名 in 集合或数组)
{
// 操作变量名
}
每次循环,系统会自动从集合中取出一个元素赋值给变量,直到遍历完成。
遍历数组
数组是最常见的使用场景之一。例如遍历一个整型数组:int[] numbers = { 1, 2, 3, 4, 5 };foreach (int num in numbers){
Console.WriteLine(num);}
输出结果为每行一个数字:1 到 5。变量 num 是只读副本,不能通过它修改原数组元素。
遍历集合(如 List)
foreach 同样适用于泛型集合,比如List:Listforeach (string name in names){
Console.WriteLine(name);}
输出三个人名。注意:在 foreach 遍历过程中,不能修改集合本身(如添加或删除元素),否则会抛出 InvalidOperationException。
注意事项和限制
使用 foreach 时需注意以下几点:- 只能读取元素,不能直接修改集合中的项(尤其是值类型的数组)
- 遍历过程中禁止修改集合结构(增删元素)
- 适用于所有实现
IEnumerable接口的类型,包括数组、List、Dictionary、HashSet 等 - 性能良好,代码清晰,推荐在无需索引时优先使用
如果需要修改元素或操作索引,建议使用 for 循环;若只需读取每个元素,foreach 是更优选择。
基本上就这些,简单易用但别踩坑。









