SequenceEqual
zwróci prawdę tylko wtedy, gdy spełnione są dwa warunki.
- Zawierają te same elementy.
- Elementy są w tej samej kolejności.
Jeśli chcesz tylko sprawdzić, czy zawierają te same elementy niezależnie od ich kolejności, a Twój problem jest tego typu
Czy wartości2 zawiera wszystkie wartości zawarte w argumentach wartości1?
można użyć metody rozszerzenia LINQ, Enumerable.Except
a następnie sprawdzić, czy wynik ma jakąkolwiek wartość. Oto przykład
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
}
A także dzięki temu automatycznie otrzymujesz różne przedmioty. Dwie pieczenie na jednym ogniu.
Pamiętaj, że jeśli wykonujesz swój kod w ten sposób
var result = values2.Except(values1);
otrzymasz różne wyniki.
W moim przypadku mam lokalną kopię tablicy i chcę sprawdzić, czy coś zostało usunięte z oryginalnej tablicy, więc używam tej metody.