C # comparando dos matrices de cuerdas

Ok, entonces esta puede ser una pregunta básica pero agradecería una respuesta.

Digamos que tenemos 5 matrices de cadenas como tales:

string[] a = {"The","Big", "Ant"}; string[] b = {"Big","Ant","Ran"}; string[] c = {"The","Big","Ant"}; string[] d = {"No","Ants","Here"}; string[] e = {"The", "Big", "Ant", "Ran", "Too", "Far"}; 

¿Existe un método para comparar estas cadenas entre sí sin hacer un bucle a través de ellas en C # de tal manera que solo a y c produzcan el verdadero valor booleano? En otras palabras, todos los elementos deben ser iguales y la matriz debe tener el mismo tamaño. De nuevo, sin usar un bucle si es posible. ¡Gracias por adelantado!

Puedes usar Linq:

 bool areEqual = a.SequenceEqual(b); 

Trate de usar Enumerable.SequenceEqual :

 var equal = Enumerable.SequenceEqual(a, b); 

Si quieres compararlos a la vez:

 string[] a = { "The", "Big", "Ant" }; string[] b = { "Big", "Ant", "Ran" }; string[] c = { "The", "Big", "Ant" }; string[] d = { "No", "Ants", "Here" }; string[] e = { "The", "Big", "Ant", "Ran", "Too", "Far" }; // Add the strings to an IEnumerable (just used List here) var strings = new List { a, b, c, d, e }; // Find all string arrays which match the sequence in a list of string arrays // that doesn't contain the original string array (by ref) var eq = strings.Where(toCheck => strings.Where(x => x != toCheck) .Any(y => y.SequenceEqual(toCheck)) ); 

Devuelve ambas coincidencias (probablemente podría expandir esto para excluir elementos que ya coincidían, supongo)

Si desea obtener datos de matriz que difieran de otra matriz, puede intentarlo. Excepto

 string[] array1 = { "aa", "bb", "cc" }; string[] array2 = { "aa" }; string[] DifferArray = array1.Except(array2).ToArray(); 

Salida: {“bb”, “cc”}

  if (a.Length == d.Length) { var result = a.Except(d).ToArray(); if (result.Count() == 0) { Console.WriteLine("OK"); } else { Console.WriteLine("NO"); } } else { Console.WriteLine("NO"); }