Bonjour, j'ai créé un SortedDictionary (SD)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
Friend Variables AsNew SortedDictionary(OfString, DonneesVariable)
Je voudrai que l'ordre de tri ne soit pas "A1, A10, A2, B1, B10, ..." mais plutot "E1, E2, ..., E10, E11,..., A1, A2 ...".

Pour vous expliquer l'origine de mon problème, au début j'utilisais un Dictionary dont l'ordre de création des clefs était bien: "E1, E2, ..., E10, E11,..., A1, A2 ...".
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
PrivateSub InitialiseVariables()
Dim MesTypeDonnee() AsString = {"E", "E", "EA", "EN", "EN", "A", "SA", "SN", "B", "R", "M", "V", "T", "C", "N"}
Dim MonComptDepart() AsInteger = {0, 2000, 0, 0, 2000, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0}
Dim MonComptFin() AsInteger = {1023, 3023, 1020, 1008, 3008, 1023, 1020, 1008, 1023, 1023, 13823, 2046, 95, 95, 15}
Dim MonComptStep() AsInteger = {1, 1, 4, 16, 16, 1, 4, 16, 1, 1, 1, 1, 1, 1, 1}
Dim i, j AsInteger
For j = 0 To 14
For i = MonComptDepart(j) To MonComptFin(j) Step MonComptStep(j)
Variables.Add(MesTypeDonnee(j) & i, New DonneesVariable("", "", False, False, "", "", ""))
Next i
Next j
EndSub
Ce qui fait que quand je l'utilisais, j'avais bien mes données (de type DonneesVariable qui est une structure à moi) dans l'ordre voulu lors du parcour de la collection par un For Each.

Il s'avère que, contrairement à ce que je pensais, je suis obliger de créer quelques clefs supplémentaires après l'initialisation de mon Dictionary
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
MonAdresse = MonStreamReader.ReadLine
IfNot Variables.ContainsKey(MonAdresse) Then
Variables.Add(MonAdresse, New DonneesVariable("", "", False, False, "", "", ""))
EndIf
, et évidement ces clefs (qui sont alors créées en "fin" de dictionary) devraient se tourver au milieu de clefs déjà existantes.

Je m'oriente donc vers un SD, mais ce n'est pas l'ordre alphabétique qui m'intéresse.

Quelqu'un peut-il m'aider?



Ce n'est pas parce que l'on allume la bougie de quelqu'un avec sa lanterne que l'on se prive de lumière.