W C # / VB.NET / .NET, która pętla działa szybciej for
lub foreach
?
Odkąd przeczytałem, że już dawnofor
pętla działa szybciej niż foreach
pętla , zakładałem, że jest prawdziwa dla wszystkich kolekcji, zbiorów ogólnych, wszystkich tablic itp.
Przeszukałem Google i znalazłem kilka artykułów, ale większość z nich jest niejednoznaczna (czytaj komentarze do artykułów) i otwarta.
Idealnym rozwiązaniem byłoby wyszczególnienie każdego scenariusza i najlepsze rozwiązanie tego samego.
Na przykład (tylko przykład tego, jak powinno być):
- do iteracji tablicy ponad 1000 ciągów -
for
jest lepszy niżforeach
- do iteracji po
IList
(nie rodzajowych) ciągach -foreach
jest lepszy niżfor
Kilka odnośników znalezionych w sieci dla tego samego:
- Oryginalny wielki stary artykuł Emmanuela Schanzera
- CodeProject FOREACH vs. DLA
- Blog - To
foreach
lub nieforeach
, to jest pytanie - Forum ASP.NET - NET 1.1 C #
for
vsforeach
[Edytować]
Oprócz aspektu czytelności, naprawdę interesują mnie fakty i liczby. Istnieją aplikacje, w których ostatnia mila optymalizacji wydajności ma znaczenie.
foreach
zamiast for
w języku C #. Jeśli widzisz tutaj odpowiedzi, które w ogóle nie mają sensu, właśnie dlatego. Obwiniaj moderatora, a nie nieszczęśliwe odpowiedzi.