Ich habe zwei Objekte mit diesen Definitionen:Vergleichen Gleichheit zweier Objekte basierend auf Wörterbücher
public static Dictionary<string, Container> cont1 = new Dictionary<string, Container>();
public static Dictionary<string, Container> cont2 = new Dictionary<string, Container>();
Das Schema der Container-Klasse ist wie folgt:
public class Container
{
public string IDx { get; set; }
public string IDy { get; set; }
public string Name { get; set; }
public Dictionary<string, Sub> Subs = new Dictionary<string, Sub>();
}
public class Sub
{
public string Namex { get; set; }
public string Namey { get; set; }
public string Value { get; set; }
public Dictionary<string, string> Paths { get; set; }
}
Meine Frage ist: Wie kann ich tiefe Prüfung das Eigenkapital von cont1 und cont2? Ich meine die Gleichheit aller Mitglieder und Werte, sogar tief in Sub-Objekten;
Gibt es irgendeine Funktionalität in C# für solche Situationen oder ich muss eine benutzerdefinierte Methode für die Überprüfung der Gleichheit basierend auf der Struktur der Objekte selbst schreiben;
Zweite Frage: Ich kann das Gleichheitsproblem umgehen, wenn ich zwei verschiedene Kopien von Produkten erstellen kann; Ich meine, sagen wir, wir haben ein Basis-Container-Objekt mit allen Mitgliedern und Werten und dann erstellen zwei separate Kopien Container, nämlich cont1 und cont2, die Änderung eines Wertes in cont1 wird nicht den gleichen Wert in cont2 ändern.
Note1: Diese Methode für das Klonen nicht funktioniert:
cont2 = new Dictionary<string, Container>(cont1);
Note2: Die meisten der vorgeschlagenen Methoden in anderen Antworten sind auf einer einer Ebene Wörterbuch basiert (mit Schleifen oder LINQ für die Überprüfung) und nicht so ein Fall, wenn wir Eigenschaften und Wörterbuchobjekte (die ihre eigenen Eigenschaften haben) innerhalb des Objekts haben.
'Meine Frage ist: Wie kann ich tief das Eigenkapital der cont1 und cont2' überprüfen - bedeutet, dass beide Wörterbücher die gleichen Schlüssel haben. und der Wert jedes Schlüssels hat die gleichen exakten * Werte * oder die gleichen exakten * Instanzen * von 'Container'? – Jamiec
Natürlich müssen Sie eine benutzerdefinierte Methode zum Überprüfen der Gleichheit basierend auf der Struktur der Objekte selbst schreiben. Aber es ist nicht einmal klar, was Sie als gleich verstehen. Stellen Sie auch nicht mehrere Fragen auf einmal. –
Sie können verschiedene Schlüssel und Werte haben und das ist der Punkt; um zu überprüfen, ob sie genau die gleichen Schlüssel haben, Eigenschaften mit den gleichen Werten – wiki