Bonjour à tous,
J'ai lu dans la base .Net de Microsoft que les boucles Each contenaient en interne des boucles For.
Du coup, je me suis dit que pour optimiser il fallait éviter les boucles Each et les remplacer par des For le plus possible.
J'ai quand même vérifié en testant dans la pratique avec une List, un compteur et deux façons différentes de boucler For / Each.
Boucle For:
Boucle Each :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Call Chrono("On") For i = 0 To MaList.Count - 1 Step 1 ListBox1.Items.Add(MaList(i).ToString) Next Call Chrono("Off") ListBox2.Items.Add(Duree.ToString)
Pour avoir une bonne différence, j'ai poussé à 2000 items dans la list.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Call Chrono("On") For Each Item As Integer In MaList ListBox1.Items.Add(Item.ToString) Next Call Chrono("Off") ListBox2.Items.Add(Duree.ToString)
La différence est très légère, mais c'est la boucle Each qui est plus rapide.
Quelqu'un peut m'expliquer pourquoi ?
Merci pour vos commentaires.
PS : c'est peut-être moi, mais je trouve la librairie en ligne de Microsoft pratique mais très mal renseignée. C'est mal expliqué et des fois pas du tout.
Sur le principe du Datasource par exemple, la librairie m'a induit en erreur longtemps par manque d'explications sur certains points importants.
J'ai dû faire des tests pour comprendre toutes les implications.
Partager