J'ai deux classes et leurs variables sont exactement les mêmes.(Pour ne pas prolonger la question, je n'explique pas pourquoi j'utilise la même classe). Je compare les mêmes variables dans ces deux classes avec Reflection. La fonction renvoie vrai s'il y a une variable dont la valeur a changé . Cependant, cette fonction que j'ai écrite ne fait pas la comparaison correctement s'il y a une liste dans la classe. Elle renvoie vrai pour les listes identiques et inchangées, mais le résultat devrait être faux
Supposons que la liste est complète et que les mêmes valeurs
CLASSE UN
CLASSE DEUX
ID = 5
ID = 5
Nombre = 10
Nombre = 10
Liste a
Liste a
private bool Compare(Class A, Class B)
{
A.GetType().GetProperties().ToList().ForEach(p =>
{
B.GetType().GetProperties().ToList().ForEach(p2 =>
{
if (p.Name == p2.Name)
{
if
(!p.GetValue(A).Equals(p2.GetValue(B)))
{
result = true;
}
}
}
);
});
return result;
}