LINQ Eindeutige Elemente aus einer Liste in einer Liste abrufen

8

Ich habe eine List vom Typ MyObject mit einer Definition darunter:

%Vor%

Gegeben ein List vom Typ MyObject , benutze LINQ welchen Ausdruck soll ich verwenden um alle distinct OtherObject zu bekommen?

Was ich vorhatte, war, jede MyObject zu loopen und die eindeutige OtherObject von der Eigenschaft ObjectList zu bekommen, aber dann muss ich das distinct über die Liste bekommen.

Bitte beachten Sie Folgendes:     MyObject[0].Objectlist[0] == 'ItemA' und MyObject[1].Objectlist[0] == 'ItemA' es wird immer noch eine einzelne Instanz von ItemA zurückgegeben. Dieser Code ist nur eine Darstellung. Auf diese Weise greife ich übrigens nicht auf meine Objekte zu.

    
Devmonster 12.07.2012, 08:22
quelle

2 Antworten

10

Sie können dies einfach mit Festlegen Logik erreichen. C # hat eine nette Implementierung in Form von HashSet :

%Vor%

Oder wenn Sie eine verzögerte Ausführung bevorzugen, können Sie LINQ Distinct Methode:

%Vor%     
Rich O'Kelly 12.07.2012, 08:24
quelle
3

Wie wäre es mit:

%Vor%

Sie können die Technik aus Distinct () mit Lambda? verwenden, um zu ändern, wie Sie entscheiden, ob ein Objekt unterscheidet sich von einem anderen.

    
mdm 12.07.2012 08:26
quelle

Tags und Links