💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
# foreach,in(C# 参考) **foreach** 语句对实现 [System.Collections.IEnumerable](https://msdn.microsoft.com/zh-CN/library/system.collections.ienumerable.aspx) 或 [System.Collections.Generic.IEnumerable&lt;T&gt;](https://msdn.microsoft.com/zh-CN/library/9eekhta0.aspx) 接口的数组或对象集合中的每个元素重复一组嵌入式语句。 **foreach** 语句用于循环访问集合,以获取您需要的信息,但不能用于在源集合中添加或移除项,否则可能产生不可预知的副作用。如果需要在源集合中添加或移除项,请使用 [for](https://msdn.microsoft.com/zh-CN/library/ch45axte.aspx) 循环。 嵌入语句为数组或集合中的每个元素继续执行。当为集合中的所有元素完成迭代后,控制传递给 **foreach** 块之后的下一个语句。 可以在 **foreach** 块的任何点使用 [break](https://msdn.microsoft.com/zh-CN/library/adbctzc4.aspx) 关键字跳出循环,或使用 [continue](https://msdn.microsoft.com/zh-CN/library/923ahwt1.aspx) 关键字进入循环的下一轮迭代。 **foreach** 循环还可以通过 [goto](https://msdn.microsoft.com/zh-CN/library/13940fs2.aspx)、[return](https://msdn.microsoft.com/zh-CN/library/1h3swy84.aspx) 或 [throw](https://msdn.microsoft.com/zh-CN/library/1ah5wsex.aspx) 语句退出。 有关 **foreach** 关键字和代码示例的更多信息,请参见下面的主题: [对数组使用 foreach(C# 编程指南)](https://msdn.microsoft.com/zh-CN/library/2h3zzhdw.aspx) [如何:使用 foreach 访问集合类(C# 编程指南)](https://msdn.microsoft.com/zh-CN/library/9yb8xew9.aspx) 以下代码显示了三个示例: * 显示整数数组内容的典型的 **foreach** 循环 * 执行相同操作的 [for](https://msdn.microsoft.com/zh-CN/library/ch45axte.aspx) 循环 * 维护数组中的元素数计数的 **foreach** 循环 ``` class ForEachTest { static void Main(string[] args) { int[] fibarray = new int[] { 0, 1, 1, 2, 3, 5, 8, 13 }; foreach (int element in fibarray) { System.Console.WriteLine(element); } System.Console.WriteLine(); // Compare the previous loop to a similar for loop. for (int i = 0; i < fibarray.Length; i++) { System.Console.WriteLine(fibarray[i]); } System.Console.WriteLine(); // You can maintain a count of the elements in the collection. int count = 0; foreach (int element in fibarray) { count += 1; System.Console.WriteLine("Element #{0}: {1}", count, element); } System.Console.WriteLine("Number of elements in the array: {0}", count); } // Output: // 0 // 1 // 1 // 2 // 3 // 5 // 8 // 13 // 0 // 1 // 1 // 2 // 3 // 5 // 8 // 13 // Element #1: 0 // Element #2: 1 // Element #3: 1 // Element #4: 2 // Element #5: 3 // Element #6: 5 // Element #7: 8 // Element #8: 13 // Number of elements in the array: 8 } ``` ## C# 语言规范 有关详细信息,请参阅 [C# 语言规范](https://msdn.microsoft.com/zh-CN/library/ms228593.aspx)。该语言规范是 C# 语法和用法的权威资料。 ## 请参阅 [C# 参考](https://msdn.microsoft.com/zh-CN/library/618ayhy6.aspx) [C# 编程指南](https://msdn.microsoft.com/zh-CN/library/67ef8sbd.aspx) [C# 关键字](https://msdn.microsoft.com/zh-CN/library/x53a06bb.aspx) [迭代语句(C# 参考)](https://msdn.microsoft.com/zh-CN/library/32dbftby.aspx) [for(C# 参考)](https://msdn.microsoft.com/zh-CN/library/ch45axte.aspx)