Bonjour,

Actuellement dans mon programme je travaille avec une collections d'objets :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
'stock les resultats par secteur
    Public collgSecteurResult As New System.Collections.Generic.List(Of secteurResult)
définition de la classe secteurResult :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
Public Class secteurResult
    Public nomSecteur As String
    Public calJourResult As New System.Collections.Generic.List(Of Calendrier_Jour_Result)
    Public calSemResult As New System.Collections.Generic.List(Of Calendrier_Semaine_Result)
    Public calMoisResult As New System.Collections.Generic.List(Of Calendrier_Mois_Result)
    Public listeEmploy As New System.Collections.Generic.List(Of DataEmploy)
End Class
Et j'ai définit plusieurs function pour :
- Vérifier si un secteur existe déjà dans la collection

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
Public Function SecteurEstDansResult(ByVal paramStrSecteur As String) As Boolean
        Dim locIntCompteurSecteur As Integer
        Dim locIntTailleCollgSecteurResult As Integer = collgSecteurResult.Count - 1
        SecteurEstDansResult = False
 
        While ((locIntCompteurSecteur <= locIntTailleCollgSecteurResult) And (SecteurEstDansResult = False))
            If collgSecteurResult(locIntCompteurSecteur).nomSecteur = paramStrSecteur Then
                SecteurEstDansResult = True
            End If
            locIntCompteurSecteur += 1
        End While
End Function
- Récupérer la position d'un secteur dans une collection

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
Public Function PosSecteurResult(ByVal paramStrSecteur As String) As Integer
        Dim locIntCompteurSecteur As Integer
        Dim locBoolIsFound As Boolean = False
        Dim locIntTaillecollgSecteurResult As Integer = collgSecteurResult.Count - 1
 
        While ((locIntCompteurSecteur <= locIntTaillecollgSecteurResult) And (locBoolIsFound = False))
            If collgSecteurResult(locIntCompteurSecteur).nomSecteur = paramStrSecteur Then
                PosSecteurResult = locIntCompteurSecteur
                locBoolIsFound = True
            End If
            locIntCompteurSecteur += 1
        End While
 End Function
Je sais qu'il existe des fonctions dédié aux collections afin de savoir si un élément est dans une collection.

Cependant je ne vois pas comment les utilisés sur des collections d'objets. Dans mon exemple ici je fait ma recherche toujours par rapport à l'élément
"nomSecteur".

Comment ,dans une collection d'objet,faire la recherche d'un objet dont le nomSecteur est équivalent à notre paramStrSecteur.

J'ai trouvé un élément de réponse sur ce poste :
http://www.developpez.net/forums/d12...et-collection/

en surchargeant les méthodes d'une classe.

Je voulais savoir si il y avait d'autres méthode et laquelle serai la plus performante sur les collections d'objet, pas forcément trié, dans lesquels je doit faire des recherche de position, de présences d'objet?

Je vais essayer d'implémenter la surcharge de la méthodes contains

je vous tiens au courant

Merci d'avance pour vos observations et remarques

++