Bonjour
J'ai une classe définie de cette façon
Puis une SortedList déclarée
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 Public Class Toponyme Public Sub New() End Sub Public Property sCodePostal() As String Public Property sCodeINSEE() As String Public Property sDéfOriginal() As String Public Property sIndex() As String Public Property sLatitude() As String Public Property sLongitude() As String Public Property sNom() As String Public Property sNomDépartement() As String Public Property sNomPays() As String Public Property sNomRégion() As String End Class
Je renseigne ma SortedList à l'aide d'un objet oCommune As New Toponyme et la ligne
Code : Sélectionner tout - Visualiser dans une fenêtre à part Dim Communes As New SortedList(Of String, Toponyme)
ou sIndex contient la chaine unique d'indexation
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Dim oToponyme As New Toponyme Communes.Add(oToponyme.sIndex, oToponyme)
Pour retrouver une commune j'utilise la ligne
Mais J'ai également besoin de retrouver une commune par un autre champs comme par exemple son Code INSEE via sCodeINSEE
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Dim oToponyme As New Toponyme sComRecherchée="Paris75000" bTrouvé = CommunesSource.TryGetValue(sComRecherchée, oToponyme)
j'ai donc le code suivant:
Mais i est sytématiquement ègale à -1.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Dim i as integer Dim oCom As New Toponyme oCom.sCodePostal="75000" i= Communes(IndexOfValue(oCom)
Il s'agit en fait de retrouver la position dans la SortedList d'un objet Toponyme dont la propriété sCodePostal est donnée.
L'aide de MSDN explique bien le procédé quand la liste contient une chaine de caractères ou des nombres pas pas pour des objets.
Merci pour votre aide
Bernard
Partager