Когда вы используете foreach
, объект, который реализует IEnumerable
или IEnumerable<T>
, «повторяется».Порядок определяется реализацией объекта IEnumerable
.
. Любой класс может настроить порядок, в котором это происходит.Например, с List<T>
это в порядке списка (по индексу).Однако некоторые классы, такие как Dictionary<T,U>
, не гарантируют заказ вообще - только то, что каждый элемент будет перечислен через один раз, так как предоставление гарантии заказа в этом случае резко снизит производительность.