Das Gegenteil von Intersect()
Intersect verwendet werden kann, zu finden, übereinstimmungen zwischen beiden Sammlungen, etwa so:
//Assign two arrays.
int[] array1 = { 1, 2, 3 };
int[] array2 = { 2, 3, 4 };
//Call Intersect extension method.
var intersect = array1.Intersect(array2);
//Write intersection to screen.
foreach (int value in intersect)
{
Console.WriteLine(value); //Output: 2, 3
}
Allerdings, was möchte ich erreichen das Gegenteil, ich möchte die Liste die Elemente, die fehlen beim Vergleich von zwei Sammlungen:
//Assign two arrays.
int[] array1 = { 1, 2, 3 };
int[] array2 = { 2, 3, 4 };
//Call Intersect extension method.
var intersect = array1.NonIntersect(array2); //I've made up the NonIntersect method
//Write intersection to screen.
foreach (int value in intersect)
{
Console.WriteLine(value); //Output: 4
}
InformationsquelleAutor der Frage Peter Bridger | 2011-04-11
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wie gesagt, wenn Sie möchten, um 4 als Ergebnis, können Sie dies so tun:
Wenn Sie möchten, dass die wirkliche nicht-Kreuzung (beide auch 1 und 4), dann sollte dies den trick tun:
Wird dies nicht die meisten performante Lösung, aber für kleine Listen es sollte gut funktionieren.
InformationsquelleAutor der Antwort Øyvind Bråthen
Können Sie
Oder verwenden Sie
InformationsquelleAutor der Antwort sehe
Dieser code listet jede Sequenz nur einmal verwendet
Select(x => x)
zu verbergen das Ergebnis, um eine saubere Linq-Stil-Erweiterung-Methode. Da nutzt esHashSet<T>
seine Laufzeit istO(n + m)
wenn die hashes sind gut verteilt. Doppelte Elemente in einer der Listen entfallen sind.InformationsquelleAutor der Antwort CodesInChaos
Ich denke, Sie könnten auf der Suche nach
Except
:Check-out dieser linkdieser linkoder Google, für weitere Informationen.
InformationsquelleAutor der Antwort Grant Thomas
Bin ich mir nicht 100% sicher, was Ihr NonIntersect Methode tun soll (in Bezug auf set-Theorie) - ist es
B \ A (alles von B, der nicht auftreten)?
Wenn ja, dann sollten Sie in der Lage sein zu verwenden, die Außer Betrieb (B. Außer(A)).
InformationsquelleAutor der Antwort Frank Schmitt
InformationsquelleAutor der Antwort alcedo
array1.NonIntersect(array2);
Nonintersect diesem Betreiber ist nicht in Linq-Sie tun sollten,
außer -> union -> außer
InformationsquelleAutor der Antwort safder
InformationsquelleAutor der Antwort kiflay