Überprüfen Sie, ob eine Liste Elemente aus einer anderen enthält

8

Ich versuche nur, true zurück zu geben, wenn eine Liste einen Namen / Wert aus list2 enthält:

Das wäre meine Struktur:

%Vor%

Dies sollte wahr zurückgeben:

%Vor%

Aber das würde falsch zurückkommen, weil Name & amp; & amp; Wert stimmt nicht überein:

%Vor%

Jede Liste könnte viele verschiedene Werte enthalten und ich muss nur wissen, ob eine von Liste1 mit einer in Liste2 übereinstimmt.

Ich habe versucht mit:

%Vor%

Aber das scheint in allen Fällen falsch zu sein, ich gehe davon aus, dass dies daran liegt, dass ich eine Klasse in List anstelle einer einfachen int / Zeichenkette halte?

    
webnoob 21.11.2012, 14:03
quelle

5 Antworten

7

Überschreibe Equals und GetHashCode Implementierung für deine Klasse:

%Vor%

Oder stellen Sie einen Vergleich zu Intersect function bereit.

    
Sergey Berezovskiy 21.11.2012, 14:09
quelle
5

Vorausgesetzt, Leistung spielt keine Rolle:

%Vor%

Alternativen wären, Equals zu überschreiben oder es zu einem Struct (wahrscheinlich nicht passend) zu machen

    
bob 21.11.2012 14:07
quelle
3
%Vor%

Aber Leistung könnte schlecht sein

    
Roman Pekar 21.11.2012 14:14
quelle
1

Das Problem besteht darin, dass Sie Referenzen vergleichen und nicht die Objekte. Da Sie jedes Mal ein neues Objekt erstellen, werden die Listen niemals dieselben Referenzen enthalten.

Versuchen Sie:

%Vor%     
Pete 21.11.2012 14:08
quelle
0

spät zu stoßen, aber mit Schnittpunkt können wir auswählen und vermeiden, Gleichheit zu verwenden.

%Vor%     
Muds 22.12.2015 16:13
quelle

Tags und Links