Wie würde ich den Vergleich von zwei Listen(Von <CustomClass>) in VB?

Arbeite ich an der Umsetzung der Gleichheits-operator = für eine benutzerdefinierte Klasse von mir. Die Klasse hat eine Eigenschaft, die Value, der selbst eine List(Of OtherClass), wo OtherClass ist ein weiteres custom-Klasse in meinem Projekt.

Habe ich bereits umgesetzt IComparer, IComparable, IEqualityComparer, und IEquatable Schnittstellen, die Betreiber =, <>, bool und not und überschrieben Equals und GetHashCode für OtherClass. Dieser sollte mir alle Werkzeuge, die ich brauchen den Vergleich dieser Objekte, und verschiedene tests vergleichen zwei einzelne Instanzen dieser Objekte so weit die Kontrollen.

Allerdings bin ich mir nicht sicher, wie man diesen Ansatz, wenn Sie in einer List. Ich Sorge mich über die Reihenfolge der Liste. Gegeben:

Dim x As New List(Of OtherClass) From
    {New OtherClass("foo"),
     New OtherClass("bar"),
     New OtherClass("baz")}

Dim y As New List(Of OtherClass) From
    {New OtherClass("baz"),
     New OtherClass("foo"),
     New OtherClass("bar")}

Dann (x = y).ToString ausdrucken sollten Sie True.

Brauche ich, um zu vergleichen, die die gleiche (nicht unterscheidbare) Objekte in dieser Liste. Die Liste sollte nicht unterstützt betrogenen OtherClass, aber ich muss herausfinden, wie hinzufügen, dass später, als die Ausnahme. Nicht daran interessiert, die Verwendung von LINQ. Es sieht nett aus, aber in den wenigen Beispielen, die ich gespielt habe, fügt einen performance-overhead, der mich nervt. Loops sind hässlich, aber Sie sind schnell 🙂

Einer geraden code Antwort ist in Ordnung, aber ich würde gerne verstehen, die Logik, die nötig ist für so einen Vergleich als auch. Ich bin wahrscheinlich zu haben, zu implementieren Sprach-Logik mehr als ein paar mal die Straße hinunter.

InformationsquelleAutor Kumba | 2011-01-16

Schreibe einen Kommentar