Nie zgadzam się z wszystkimi dotychczasowymi odpowiedziami.
pierwsze średnia C# 3.0 zapewnia kolejność foreach w tablicy:
Kolejność foreach przechodzi elementów macierzy, jest następujący sposób: W przypadku pojedynczych-wymiarowej macierzy elementami wykonują ruch w zwiększaniu Palec, wychodząc z indeksem 0 i kończąc wskaźnik długości - 1. w tablic wielowymiarowych elementy ruch tak, że indeksy skrajnej prawej wymiar zwiększa pierwszy następnie następny lewy wymiar, itd. po lewej stronie.
- C# Language Specification Version 3.0, strona 240.
drugie, na obiektach, foreach (C#) i dla każdego (VB.NET) praca przy użyciu MoveNext, reset i Obecni członkowie na obiekcie (source). Są one zazwyczaj częścią interfejsu IEnumerator.
W kolekcjach, które mają zlecenie (czytaj: rzeczy, które implementują IList lub IList (T)), oznacza to, że elementy zostaną zwrócone w kolejności, w której magazyn zapasowy je przechowuje.
+1, ponieważ jest to poprawne dla wszystkich standardowych tablic i list. Choć jest to pedantyczny, niestandardowa klasa implementująca IList (T) może implementować własny moduł wyliczający, aby zwracać elementy w dowolnej kolejności. – Joe
Doskonale! Dzięki. Właśnie wygrałem zakład przeciwko koledze :) –
Dotyczy to Array, ale niekoniecznie w przypadku innych kolekcji. –