Sort() et List(Of List(String))
Bonjour,
Je souhaiterais trier une liste en fonction d'une valeur d'une liste imbriquée.
J'ai une liste "Nomenclature" qui est une list(Of List(Of String))
La liste imbriquée est composé de 2 colonnes: Désignation et Longueur
La Nomenclature est composé de plusieurs "lignes".
J'aimerais trier ma nomenclature en fonction de la seconde colonne (la longueur), le soucis c'est qu'avec sort() je ne sais pas comment m'y prendre. J'arrive à le faire sur une liste simple, mais dans mon cas je ne vois pas comment selectionner ma colonne longueur
Initialement j'avais fait ça:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
Do While ListNomenclatureTriée.Count <> ListNomenclature.Count 'Loop Tant que le nombre de barre triées et différent du nombre de barre initial
For i As Integer = 0 To ListNomenclature.Count - 1
Dim BomRowLigne As List(of String) = ListNomenclature.Item(i)
Dim LongueurBrute As String = BomRowLigne.Item(2)
LongueurBrute = Left(LongueurBrute, Len(LongueurBrute) - 2) 'Suppression des "mm"
LongueurBrute = Replace(LongueurBrute, ",", "") 'Suppression Virgule
LongueurBrute = LongueurBrute / 10 'Mise en mm
Dim LongueurActuelle As Double = Convert.ToDouble(LongueurBrute)
If LongueurActuelle > PlusGrandeLongueur And LongueurActuelle < DerniereLongeurInscrite Then
PlusGrandeLongueur = LongueurActuelle
PlusGrandeLongueurIndex = i
End If
Next
If PlusGrandeLongueur <= DerniereLongeurInscrite Then
LigneAAjouter = ListNomenclature.Item(2)
ListNomenclatureTriée.Add(LigneAAjouter)
DerniereLongeurInscrite = PlusGrandeLongueur
PlusGrandeLongueur = 0
End If
Loop |
Ce code marche bien sauf quand j'ai plusieurs lignes avec la même longueur, chose qui peut arriver...
Merci d'avance pour les pistes ;-)