Salut à tous,
Question plutôt théorique que je viens poser ici car d'autres doivent se la poser et si j'ai tort, ça m'épargnera pas mal d'efforts.
Cas concret: par exemple, admettons que j'itère sur les membres d'une liste de string >
Code VB : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 'je déclare ma liste Dim myListOfString as new List (Of String) 'je la remplis myListOfString.AddRange (text.Split(separators1, StringSplitOptions.RemoveEmptyEntries)) 'Maintenant, je souhaite itérer dessus, mais à partir du numéro d'index pour pouvoir accéder au items précédents et suivants For i As Integer = 0 to myListOfString.Count -1 'la façon la plus logique d'accéder à à l'item courant de ma liste me semble la suivante: If myListOfString(i) = "Blablabla" Then End If Next
Sur un grand nombre d'itérations, lorsque je me réfère à l'item courant comme myListOfString(i) au sein de la boucle, je vais chercher la valeur dans la list.ToArray. Si je dois accéder à cet item de nombreuses fois, je suppose qu'à chaque appel la valeur doit être allée cherchée dans la list.ToArray.
La question: est-ce qu'il vaut mieux, pour gagner en performances, stocker l'objet courant dans une string locale (sous réserve de le mettre à jour à la fin de l'itération)?
Exemple:
Code VB : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 'je déclare ma liste Dim myListOfString as new List (Of String) 'je la remplis myListOfString.AddRange (text.Split(separators1, StringSplitOptions.RemoveEmptyEntries)) 'Maintenant, je souhaite itérer dessus, mais à partir du numéro d'index pour pouvoir accéder au items précédents et suivants For i As Integer = 0 to myListOfString.Count -1 'La string locale de stockage temporaire Dim currentString as String =myListOfString(i) 'Est-ce plus rapide de s'y prendre comme ça si je prévis de le faire plusieurs fois dans la boucle If currentString = "Blablabla" Then End If ' reste de la boucle 'et enfin, je mets à jour l'objet courant myListOfString(i) = currentString Next
Merci!
Partager