foreach
循环及其实现哪些类使用 foreach
循环?
C# 中的 foreach
循环在实现 IEnumerable
或 IEnumerable<T>
的类中被大量使用。 这包括提供返回 GetEnumerator()
或 IEnumerator
的 IEnumerator<T>
方法的任何类。 本质上,这涵盖了所有实现 ICollection
或 ICollection<T>
的类,例如数组、列表和其他集合。
foreach
循环机制:
标准 foreach
循环(例如 foreach (int i in obj) { ... }
)在功能上类似于:
<code class="language-csharp">var tmp = obj.GetEnumerator(); int i; // C# 4.0 and earlier while (tmp.MoveNext()) { int i; // C# 5.0 and later i = tmp.Current; { ... } // Loop body }</code>
重要注意事项:如果枚举器 (tmp
) 实现 IDisposable
,它将被丢弃(类似于 using
语句)。 int i
的声明根据 C# 版本的不同而有所不同。在 C# 5.0 及更高版本中,它在循环内声明;早期版本在外部声明它。在匿名方法或循环内的 lambda 表达式中使用 i
时,这种区别至关重要。
以上是Foreach 循环在 C# 中如何工作以及哪些类实现它们?的详细内容。更多信息请关注PHP中文网其他相关文章!