SequenceEqual
sólo devolverá verdadero si dos condiciones o conocido.
- Contienen los mismos elementos.
- Los elementos están en el mismo orden.
Si sólo desea comprobar si contienen los mismos elementos, independientemente de su orden y su problema es del tipo
¿El values2 contener todos los valores contenidos en valores1?
puede utilizar el método de extensión LINQ Enumerable.Except
y luego comprobar si el resultado tiene algún valor. Aquí hay un ejemplo
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
}
Y también al usar esto, usted obtiene los diferentes artículos también automáticamente. Dos pájaros con una piedra.
tener en cuenta, si se ejecuta el código como este
var result = values2.Except(values1);
obtendrá resultados diferentes.
En mi caso, tengo una copia local de una matriz y quiero comprobar si se ha eliminado algo de la matriz original, así que utilizo este método.
Agregué '.net' a las etiquetas porque esta técnica podría ser nosotros ed en otros lenguajes similares basados en .net. –
Para cualquiera que lea esto, tenga en cuenta que la respuesta aceptada es el uso de SequenceEqual. SequenceEqual no solo comprueba si contienen los mismos datos, sino también si contienen los mismos datos en el mismo orden –