OVH Cloud OVH Cloud

Collection et IndexOf

1 réponse
Avatar
Bernard Bourée
J'ai une class nommée "Variable" avec 2 propriétés "Name" et "Value" ainsi
que la classe suivante pour gérer une collection de Variable:

Public Class ColVariables
Inherits CollectionBase
Default Public Property Item(ByVal index As Integer) As Variable
Get
Return CType(List(index), Variable)
End Get
Set(ByVal Value As Variable)
List(index) = Value
End Set
End Property
Public Function Add(ByVal value As Variable) As Integer
Return List.Add(value)
End Function 'Add
Public Function IndexOf(ByVal value As Variable) As Integer
Return List.IndexOf(value)
End Function 'IndexOf
...........................

Ma collection est construite avec:

Dim ColVar as New ColVariables
ColVar.Add(New Variable(Name, Value)

Je cherche à retouver un élément de cette collection, mais le code suivant
me renvoit toujours -1

Dim var As New Variable(Name, Value)
Dim idx As Integer
idx = ColVar.IndexOf(var)
Idx is always -1

Où est l'erreur ?

--
Bernard Bourée
bernard@bouree.net

1 réponse

Avatar
Lionel Barré [MS]
Indexof vous renvoie -1 car l'objet n'est jamais trouvé en effet il recherche
la même instance de l'objet et non la valeur de l'objet.

Cordialment
Lionel Barré

"Bernard Bourée" a écrit :

J'ai une class nommée "Variable" avec 2 propriétés "Name" et "Value" ainsi
que la classe suivante pour gérer une collection de Variable:

Public Class ColVariables
Inherits CollectionBase
Default Public Property Item(ByVal index As Integer) As Variable
Get
Return CType(List(index), Variable)
End Get
Set(ByVal Value As Variable)
List(index) = Value
End Set
End Property
Public Function Add(ByVal value As Variable) As Integer
Return List.Add(value)
End Function 'Add
Public Function IndexOf(ByVal value As Variable) As Integer
Return List.IndexOf(value)
End Function 'IndexOf
............................

Ma collection est construite avec:

Dim ColVar as New ColVariables
ColVar.Add(New Variable(Name, Value)

Je cherche à retouver un élément de cette collection, mais le code suivant
me renvoit toujours -1

Dim var As New Variable(Name, Value)
Dim idx As Integer
idx = ColVar.IndexOf(var)
Idx is always -1

Où est l'erreur ?

--
Bernard Bourée