j'ai bien du mal ces derniers temps avec les comparaisons de list sur des classes perso.
J'aimerai savoir si les valeurs de deux instances sur des listes de listes sont identiques ou non.
Mon code actuel est le suivant
Je n'arrive pas à comparer deux listes de ce type :
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
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56 Public Class Instrument_ListOfParameters Private ID_INSTRU As Double Private LstParam As List(Of Param) Public Sub New(ID_INSTRUMENT As Double, lstParameters As List(Of Param)) ID_INSTRU = ID_INSTRUMENT LstParam = lstParameters End Sub Public Sub AddParam(tmpParam As Param) LstParam.Add(tmpParam) End Sub Public Sub RemoveParam(tmpParam As Param) LstParam.Remove(tmpParam) End Sub Public ReadOnly Property GetID_Instru() As Double Get GetID_Instru = ID_INSTRU End Get End Property Public ReadOnly Property GetLstParam() As List(Of Param) Get GetLstParam = LstParam End Get End Property End Class Public Class Param Private ID_PARAM As Double Private DESC_VALUE As Object Public Sub New(New_ID_PARAM As Double, New_DESC_VALUE As Object) ID_PARAM = New_ID_PARAM DESC_VALUE = New_DESC_VALUE End Sub Public ReadOnly Property Get_ID_PARAM() As Double Get Get_ID_PARAM = ID_PARAM End Get End Property Public ReadOnly Property Get_DESC_VALUE() As Object Get Get_DESC_VALUE = DESC_VALUE End Get End Property End Class
la fonction cleanparam nettoyant juste les données pour les mettre au meme niveau de template.
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
17
18
19 Public Function Compare2Lists(ByVal lstparamFrom As Instrument_ListOfParameters, ByVal lstparamTo As Instrument_ListOfParameters) As Boolean Dim tmpfrom As New List(Of Instrument_ListOfParameters) tmpfrom.Add(lstparamFrom) Dim tmpto As New List(Of Instrument_ListOfParameters) tmpto.Add(lstparamTo) Compare2Lists = True If tmpfrom.Item(0).GetID_Instru <> tmpto.Item(0).GetID_Instru Then Compare2Lists = False Exit Function End If Dim test = New With {Key .core = CleanParam(Id_Block_Type_To, tmpfrom)} Dim test2 = New With {Key .core = CleanParam(Id_Block_Type_To, tmpto)} 'tmpfrom.Item(0) = CleanParam(Id_Block_Type_To, tmpfrom) 'tmpto.Item(0) = CleanParam(Id_Block_Type_To, tmpto) If Not test2.Equals(test) Then Compare2Lists = False End If End Function
Sur les espions j'ai bien la meme chose entre test et test2, mais j'ai toujours test2.equals(test) qui me retourne False
Des idées svp ?
Partager