Heim > Backend-Entwicklung > C++ > Wie kann ich zwei Listen von Personenobjekten in C# mithilfe von LINQ kombinieren, Duplikate verarbeiten und Unterschiede berechnen?

Wie kann ich zwei Listen von Personenobjekten in C# mithilfe von LINQ kombinieren, Duplikate verarbeiten und Unterschiede berechnen?

Susan Sarandon
Freigeben: 2024-12-29 07:28:09
Original
602 Leute haben es durchsucht

How Can I Combine Two Lists of Person Objects in C# Using LINQ, Handling Duplicates and Calculating Differences?

Erstellen einer kombinierten Liste mit transformierten Werten mithilfe von LINQ

Im dargestellten Szenario haben Sie zwei Listen mit Personenobjekten und benötigen eine neue Liste das diese Listen kombiniert. Für identische Personenobjekte sollte der zusammengeführte Eintrag seinen gemeinsamen Namen behalten, den Wert aus Liste2 besitzen und seine Änderung sollte wie folgt berechnet werden: (Liste2.Wert – Liste1.Wert). Wenn keine Duplikate vorhanden sind, sollte die Änderung bei Null bleiben.

Um dies zu erreichen, verwenden Sie die LINQ Union-Erweiterungsmethode. Zum Beispiel:

var mergedList = list1.Union(list2).ToList();
Nach dem Login kopieren

Diese Aktion führt die beiden Listen zusammen und eliminiert Duplikate. Standardmäßig werden die in Ihrer Person-Klasse definierten Methoden Equals und GetHashCode verwendet, um die Objektgleichheit zu bestimmen. Für einen benutzerdefinierten Vergleich basierend auf einer Eigenschaft wie „Name“ überschreiben Sie diese Methoden wie folgt:

public override bool Equals(object obj)
{
    // Check if obj is convertible to Person
    var person = obj as Person;
    return Equals(person);
}

public override int GetHashCode()
{
    return Name.GetHashCode();
}

public bool Equals(Person personToCompareTo)
{
    // Check for null or empty Name
    if (personToCompareTo == null || string.IsNullOrEmpty(personToCompareTo.Name)) return false;
    // Compare Names for equality
    return Name.Equals(personToCompareTo.Name);
}
Nach dem Login kopieren

Alternativ können Sie eine Vergleichsklasse definieren, die die IEqualityComparer-Schnittstelle implementiert, und diese als zweites Argument für die Union-Methode für den benutzerdefinierten Objektvergleich bereitstellen . Weitere Einzelheiten finden Sie unter https://msdn.microsoft.com/en-us/library/system.collections.iequalitycomparer.aspx.

Das obige ist der detaillierte Inhalt vonWie kann ich zwei Listen von Personenobjekten in C# mithilfe von LINQ kombinieren, Duplikate verarbeiten und Unterschiede berechnen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage