IndexOfValue et SortedList
Bonjour
J'ai une classe définie de cette façon
Code:
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 |
Puis une SortedList déclarée
Code:
Dim Communes As New SortedList(Of String, Toponyme)
Je renseigne ma SortedList à l'aide d'un objet oCommune As New Toponyme et la ligne
Code:
1 2
| Dim oToponyme As New Toponyme
Communes.Add(oToponyme.sIndex, oToponyme) |
ou sIndex contient la chaine unique d'indexation
Pour retrouver une commune j'utilise la ligne
Code:
1 2 3
| Dim oToponyme As New Toponyme
sComRecherchée="Paris75000"
bTrouvé = CommunesSource.TryGetValue(sComRecherchée, oToponyme) |
Mais J'ai également besoin de retrouver une commune par un autre champs comme par exemple son Code INSEE via sCodeINSEE
j'ai donc le code suivant:
Code:
1 2 3 4 5
|
Dim i as integer
Dim oCom As New Toponyme
oCom.sCodePostal="75000"
i= Communes(IndexOfValue(oCom) |
Mais i est sytématiquement ègale à -1.
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