PascalCmoa
Messages postés239Date d'inscriptionmercredi 19 février 2003StatutMembreDernière intervention17 janvier 2013
-
3 févr. 2009 à 14:16
PascalCmoa
Messages postés239Date d'inscriptionmercredi 19 février 2003StatutMembreDernière intervention17 janvier 2013
-
3 févr. 2009 à 18:18
Bonjour à tous,
Je viens de réaliser une classe qui me permet de faire un tri sur une arraylist, bon là pas de problème cela fonctionne super bien. Maintenant j'aimerai trier cette même arraylist mais cette fois-ci en fonction des id_User et des dateAffectation. En fait faire 2 tris dans la même arraylist, mais voilà je ne sais comment réaliser ce double tri.
La classe utilisée est la suivante (je n'ai pas inventé l'eau chaude):
Public Class trieur
Implements IComparer
''' <summary>
''' Attention, ceci est un exemple, je dois faire ma classe de tri
''' </summary>
'''
'''
''' <returns></returns>
''' <remarks></remarks>
Public Function Compare(ByVal x As Object, ByVal y As Object) As Integer Implements System.Collections.IComparer.Compare
Dim valeurX As modif = CType(x, modif)
Dim valeurY As modif = CType(y, modif)
'Select Case valeurX.Compteur - valeurY.Compteur
' Case Is > 0
' Return 1
' Case Is = 0
' Return 0
' Case Else
' Return -1
'End Select
Select Case valeurX.Employe - valeurY.Employe
Case Is > 0
Return 1
Case Is = 0
Return 0
Case Else
Return -1
End Select
End Function
End Class
Je ne demande pas que l'on me code cette fonction, je préfère que l'on m'aiguille vers la solution.
PascalCmoa
Messages postés239Date d'inscriptionmercredi 19 février 2003StatutMembreDernière intervention17 janvier 20135 3 févr. 2009 à 18:18
Re
je dois avoir les deux neurones qui se touchent en ce moment, je viens de m'apercevoir que j'essaie de comparer des choux avec des carottes. J'essaie de comparer un objet avec la propriété d'un objet . J'ai besoin d'aller dormir
PascalCmoa
Messages postés239Date d'inscriptionmercredi 19 février 2003StatutMembreDernière intervention17 janvier 20135 3 févr. 2009 à 17:44
Re-Bonjour
Je vais reformuler ma demande.
Après refléxion, il me parait évident qu'il est stupide de vouloir faire un nouveau tri.
Maintenant, se pose à moi un nouveau souci. J'obtiens des lignes considérées comme doublon comme le montre le tableau ci-dessous:
dateAffect |Compteur |Magasin |Affectation |Employe |Action |----
03/02/2009, 2, 5, 3, 39, 4, ----
28/01/2009, 1, 24, 11, 54, 3, ----
01/01/2009, 4, 16, 11, 74, 2, ----
04/02/2009, 3, 16, 11, 74, 2, ----
01/01/2009, 0, 16, 3, 74, 1La ligne dont le compteur 0 est considéré comme doublon à la ligne dont le compteur 4. Il faut donc supprimer la ligne avec compteur = 0.
Pour cela, j'utilise une nouvelle arrayList et je la remplie comme cela:
For j As Integer = 0 To Me._objAL.Count - 1
Dim objet As modif = Me._objAL(j)
If Not _objALRef.Contains(objet.Employe) And Not _objALRef.Contains(objet.dateAffect) Then
_objALRef.Add(objet)
End If
Next
Malheureusement, ces quelques lignes de code me donne un "clonage" de ma première arrayList.
Ma question est comment faire pour retirer la (ou les) ligne doublon. Sachant que les lignes de l'arraylist sont des objets.