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:

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)
Boucle Each :

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)
Pour avoir une bonne différence, j'ai poussé à 2000 items dans la list.

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.