Ich versuche, zwei Listen mit
zu vergleichen %Vor%Aber ich bekomme eine Ausnahme
%Vor% Aber als ich das Nullelement mit Assert.AreEqual
auf Feld für Feld verglichen habe, war alles in Ordnung.
Irgendeine Idee, warum ich nicht mit CollectionAssert
Ein Objekt ist in .NET "deklariert", das einem anderen Objekt entspricht, wenn die Methode Equals(object other)
true zurückgibt. Sie müssen diese Methode für Ihre API.Program.Relation
-Klasse implementieren, ansonsten berücksichtigt .NET Ihre Objekte als unterschiedlich, es sei denn, sie sind referenzgleich. Die Tatsache, dass alle Felder gleich sind, spielt für .NET keine Rolle: Wenn Sie Semantik für Feld-für-Feld-Gleichheit benötigen, müssen Sie eine Implementierung von Equals
bereitstellen, die dies unterstützt.
Wenn Sie Equals
überschreiben, vergessen Sie nicht, auch GetHashCode
zu überschreiben - diese müssen zusammen überschrieben werden.
Wenn Sie Equals
aus irgendeinem Grund nicht überschreiben möchten oder können, können Sie eine Überladung von CollectionAssert.AreEqual
, die eine Instanz von IComparer
benötigt, um beim Vergleich von Auflistungselementen zu helfen.