SequenceEqual
ne retournera vrai que si deux conditions ou remplies.
- Ils contiennent les mêmes éléments.
- Les éléments sont dans le même ordre.
Si vous voulez seulement vérifier s'ils contiennent les mêmes éléments quel que soit leur ordre et que votre problème est du type
Valeurs2 contient-il toutes les valeurs contenues dans Valeurs1?
vous pouvez utiliser la méthode d'extension LINQ Enumerable.Except
, puis vérifier si le résultat a une valeur. Voici un exemple
int[] values1 = { 1, 2, 3, 4 };
int[] values2 = { 1, 2, 5 };
var result = values1.Except(values2);
if(result.Count()==0)
{
}
else
{
}
Et aussi en utilisant cela, vous obtenez automatiquement les différents éléments. Deux oiseaux avec une pierre.
Gardez à l'esprit que si vous exécutez votre code de cette manière
var result = values2.Except(values1);
vous obtiendrez des résultats différents.
Dans mon cas, j'ai une copie locale d'un tableau et je veux vérifier si quelque chose a été supprimé du tableau d'origine, j'utilise donc cette méthode.