[英]How does .net determine the order for the “foreach” loop?
當我在C#.net中使用foreach
語句時,.net如何確定以什么順序處理集合中的元素?
當使用foreach
,實現IEnumerable
或IEnumerable<T>
的對象被“迭代”。 順序由對象的IEnumerable
實現確定。
任何類都可以自定義發生的順序。 例如,使用List<T>
,它以列表的順序(按索引)排列。 但是,某些類(例如Dictionary<T,U>
根本無法保證順序-只能逐項枚舉每個項目,因為在這種情況下提供順序保證會極大地影響性能。
它使用IEnumerable和IEnumerator接口。 它們一個接一個地提供值,因此.Net不必在乎順序。 它按照交付時的順序處理這些值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.