Kombinieren eines ähnlichen Zeichens in einem String in C #

8

Ich habe eine Liste von Listen, die ganze Zahlen enthalten (diese Liste kann beliebig lang sein und beliebig viele Ganzzahlen enthalten:

%Vor%

Als nächstes möchte ich die Listen kombinieren, in denen eine ganze Zahl mit irgendeiner ganzen Zahl aus einer anderen Liste übereinstimmt, in diesem Fall:

%Vor%

Ich habe viele verschiedene Ansätze ausprobiert, bin aber auf der Suche nach einer eleganten Lösung.

    
Ian Clay 26.10.2012, 09:07
quelle

5 Antworten

5

Wenn Sie nur "kombinieren, wenn es eine Kreuzung gibt", dann vielleicht etwas wie unten, mit der Ausgabe:

%Vor%

Beachten Sie, dass es auch den Test in Ihrer Bearbeitung mit der Ausgabe übergibt:

%Vor%

Code:

%Vor%     
Marc Gravell 26.10.2012, 09:29
quelle
1

Erstellen Sie einen benutzerdefinierten Vergleich:

%Vor%

Bestellen Sie dann zuerst nach dem benutzerdefinierten Vergleich:

%Vor%

Verwenden Sie Intersect.Any() , um zu überprüfen:

%Vor%     
Cuong Le 26.10.2012 09:39
quelle
0

Hier ist eine einfache, flexible Lösung, die LINQs Aggregate verwendet:

%Vor%     
sloth 26.10.2012 09:51
quelle
0

Wir führen eine Liste der resultierenden Mengen (1). Entfernen Sie für jede Quellenmenge die resultierenden Mengen, die sie schneiden (2), und fügen Sie eine neue Ergebnismenge (3) hinzu, die die Vereinigung der entfernten Mengen und der Quellenmenge (4) ist:

%Vor%

Dies druckt:

%Vor%     
Branko Dimitrijevic 26.10.2012 12:12
quelle
-1

Ok ich LINQed dies auf! Hoffe das ist was du wolltest ... verrückter;)

%Vor%     
Jan P. 26.10.2012 10:00
quelle

Tags und Links