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中文網其他相關文章!