SequenceEqual
wird nur dann true zurückgeben, wenn zwei Bedingungen erfüllt sind.
- Sie enthalten die gleichen Elemente.
- Die Elemente sind in derselben Reihenfolge.
Wenn Sie nur überprüfen möchten, ob sie unabhängig von ihrer Reihenfolge dieselben Elemente enthalten und Ihr Problem vom Typ ist
Enthält values2 alle in values1 enthaltenen Werte?
Sie können die LINQ-Erweiterungsmethode verwenden Enumerable.Except
und dann prüfen, ob das Ergebnis einen Wert hat. Hier ist ein Beispiel
int[] values1 = { 1, 2, 3, 4 };
int[] values2 = { 1, 2, 5 };
var result = values1.Except(values2);
if(result.Count()==0)
{
//They are the same
}
else
{
//They are different
}
Und auch wenn Sie dies verwenden, erhalten Sie die verschiedenen Elemente automatisch. Zwei Fliegen mit einer Klappe.
Denken Sie daran, wenn Sie Ihren Code so ausführen
var result = values2.Except(values1);
Sie erhalten unterschiedliche Ergebnisse.
In meinem Fall habe ich eine lokale Kopie eines Arrays und möchte überprüfen, ob etwas aus dem ursprünglichen Array entfernt wurde, also verwende ich diese Methode.