Jayme65
Messages postés66Date d'inscriptionlundi 23 avril 2007StatutMembreDernière intervention26 mars 2019
-
30 mars 2011 à 20:15
nhervagault
Messages postés6063Date d'inscriptiondimanche 13 avril 2003StatutMembreDernière intervention15 juillet 2011
-
31 mars 2011 à 15:28
Bonjour,
Je devais créer un tableau à 2 dimensions.
Je me suis dit que je pouvais le faire en créant une classe, et en faisant un: List (Of ma classe)
Public Class Displayed
Public rom As String
Public descript As String
End Class
Sub feedArray()
Dim displayArray As New List(Of Displayed)
displayArray.Add(New Displayed() With {.descript "AAA", .rom "zzz"})
displayArray.Add(New Displayed() With {.descript "bbb", .rom "YYY"})
displayArray.Add(New Displayed() With {.descript "CCC", .rom "xxx"})
End Sub
Première chose: était ce une bonne façon de procéder? Y a t-il plus 'simple' que de créer une classe objet
Y a t-il une autre façon de créer un array/list multi-dimensionnel, avec une taille non définie dès le départ?
Et surtout: comment dois-je faire maintenant pour le trier, alphabétiquement, en choisissant la clé qui va servir au tri ('descript', ou 'rom')...et pour terminer, en ne prenant pas en compte la différence entre majuscule et minuscule ("case insensitive" dans..ActionScript)
Jayme65
Messages postés66Date d'inscriptionlundi 23 avril 2007StatutMembreDernière intervention26 mars 20192 31 mars 2011 à 13:09
NHenry,
Je te remercie pour tes conseils qui sont pertinents...tu vois, le "problème" c'est que je programme avec VB depuis seulement 15 jours...alors parfois, il faut vraiment que je "m'accroche" pour comprendre ne serait-ce même que la terminologie ;-)...et je ne te parle pas de la "mécanique" derrière tout cela !!
Ceci dit je pense (grâce à des tutos trouvés) y être parvenu:
Public Class Displayed
Implements IComparable
Public rom As String
Public descript As String
Function CompareTo(ByVal obj As Object) As Integer Implements IComparable.CompareTo
Dim c As Displayed = CType(obj, Displayed)
Return String.Compare(Me.descript, c.descript)
End Function
End Class
Sub feedArray()
Dim displayArray As New List(Of Displayed)
displayArray.Add(New Displayed() With {.descript "AAA", .rom "zzz"})
displayArray.Add(New Displayed() With {.descript "bbb", .rom "YYY"})
displayArray.Add(New Displayed() With {.descript "CCC", .rom "xxx"})
End Sub
displayArray.Sort()
Je pense qu'il s'agit bien de la méthode que tu préconisais, n'est ce pas?
Merci pour ton aide, et celle de nhervagault
Jayme65
Messages postés66Date d'inscriptionlundi 23 avril 2007StatutMembreDernière intervention26 mars 20192 31 mars 2011 à 00:00
nhervagault,
J'ai bien essayé par moi même..mais je t'avoue que je suis un peu largué...est ce que par hasard tu aurais le temps pour me faire voir à quoi le code correspondrait plus ou moins, en partant de mon code de départ?
Public Class Displayed
Public rom As String
Public descript As String
End Class
Sub feedArray()
Dim displayArray As New List(Of Displayed)
displayArray.Add(New Displayed() With {.descript "AAA", .rom "zzz"})
displayArray.Add(New Displayed() With {.descript "bbb", .rom "YYY"})
displayArray.Add(New Displayed() With {.descript "CCC", .rom "xxx"})
End Sub
Comment puis je trier displayArray, par son "attribut" 'descript', et que cela donne AAA,bbb,CCC et non pas AAA, CCC, bbb comme cela est par ex. le cas en ActionScript (j'ignore si c'est la même chose en VB)