Laden...

Zwei List<T> vergleichen

Erstellt von Bonaqua vor 2 Jahren Letzter Beitrag vor 2 Jahren 338 Views
B
Bonaqua Themenstarter:in
35 Beiträge seit 2011
vor 2 Jahren
Zwei List<T> vergleichen

Hallo,

ich habe zwei Listen.
Eine Liste mit allen Produktnummern und eine weitere mit nur ein paar Nummern.

Nun möchte ich gerne, wenn ich beide Listen miteinander vergleiche, dass ich nur die Werte aus der ersten Liste erhalten, welche NICHT in der zweiten Liste vorkommen.


List<Nummern> firstNotSecond = lstAlleNummern.Except(lstNummernzuordnung).ToList();

Wenn ich folgenden Code ausführe, erhalte ich jedoch weiterhin alle Werte; also auch alle, welche in der lstNummernzuordnung enthalten sind.

Ist meine Vorgehensweise falsch?

16.807 Beiträge seit 2008
vor 2 Jahren

Ja, dazu musst Du nur in die Dokumentation schauen, wie das funktioniert.
Enumerable.Except Methode (System.Linq)

Except() verwendet Equals() zur Gleichheitsbestimmung, und per default Unterscheiden sich Objekte anhand der Referenz.
Du willst aber keine Referenzen sondern Werte vergleichen, wozu Du IEquatable implementieren musst.

Aber: steht alles in der Doku inkl. Beispielen - muss man einfach lesen 😉

4.931 Beiträge seit 2008
vor 2 Jahren

Hallo,

was ist Nummern für ein Datentyp?
Du solltest dort Equals und GetHashCode implementieren, s.a. Beispiel in Except<TSource>(IEnumerable<TSource>, IEnumerable<TSource>).

PS: Hat dir mein Beitrag in BindingSource Filter weitergeholfen?

B
Bonaqua Themenstarter:in
35 Beiträge seit 2011
vor 2 Jahren

@Abt / @Th69 Danke für eure Hilfe! Hat nun geklappt!

@Th69 an der BindingList bin ich nun dran ...