Üblicherweise verwenden wir Distinct in C# für Array-Deduplizierung, allgemeine arraybasierte Datentypen wie int, String. können auch für Objektdeduplizierung verwendet werden. Schauen wir uns die Definition der Disdifferentie-Methode in C# an:
Es gibt eine hohe Belastung, der erste Parameter wird hinzugefügt, nämlich die Expansionsmethode, bitte Baidu versteht es. Untersuchen wir die Objektdeduplizierung von Disdinct, nehmen wir an, wir haben jetzt eine People-Klasse:
Wir deklarieren eine Sammlung von ListPeole-Objekten:
Verwenden wir die Disdifferent-Methode auf ListPeople ohne Parameter, und das Ergebnis ist wie folgt:
Man kann sehen, dass die Differentiatie-Methode, wenn sie keine Parameter hat, p, p1, p2 im Objektsatz dedupliziert wird und es keine Deduplizierung für verschiedene Objekte mit demselben Elementwert des Objekts gibt. Jetzt gibt es die Anforderung, dass Personen mit derselben ID als dieselbe Person gezählt werden, um die nicht-duplizierten Personen im Set auszugeben (geben Sie einfach eine für dieselbe ID aus). Zu diesem Zeitpunkt verwenden wir die zweite Methode von Distinkt. Die Methode verlangt, dass die eingereichten Parameter vom Typ IEqualityComparer sind, die eine generische Schnittstelle erben. Wir fügen folgenden Code hinzu:
Indem Sie die IEqualityComparer-Schnittstelle übernehmen, müssen Sie die Methoden Equals und GetHashCode implementieren. Beim Vergleich können wir eine Entität mit PeopleCompareByID eingeben:
Die Ergebnisse des Laufs sind wie folgt:
Wir haben den Effekt der Deduplizierung durch ID erreicht. Nun haben sich die Anforderungen wieder geändert, ID und Provinz sind dieselbe Person, um die Informationen der Person auszugeben (sie kann eine nach Belieben ausgeben), zu diesem Zeitpunkt sehen wir, dass ID=0 und Provinz="Hubei" dupliziert werden, um sie zu deduplizieren, haben wir eine weitere Klasse oder erben von IEqualityComparer:
Ähnlich wird bei Verwendung der Disdifferent-Methode eine Instanz von PeopleCompareByIDAndProvince passiert:
Die Ergebnisse nach dem Laufen sind wie folgt:
Wir haben den gewünschten Effekt erreicht. Diese Methode kann verwendet werden, wenn das Problem der Deduplizierung mit drei oder mehr Objektmitgliedern auftritt, um zu bestimmen, ob das Objekt dupliziert ist. Das Obige ist meine bescheidene Meinung.
|