Comparar arrays en C#

Saad Aslam 12 octubre 2023
  1. Utilice la función SequenceEqual() para comparar arrays en C#
  2. Comparar elementos coincidentes para comparar arrays en C#
Comparar arrays en C#

Este artículo discutirá la comparación de dos arrays para ver si son iguales.

Los dos métodos que discutiremos e implementaremos para comparar las arrays son,

  • la función SequenceEqual();
  • comparación de los elementos coincidentes en cada una de las arrays.

Si dos arrays tienen los mismos elementos coincidentes y el mismo número de elementos, se dice que son iguales.

Utilice la función SequenceEqual() para comparar arrays en C#

Primero, debemos importar la biblioteca para acceder a la función SequenceEqual().

using System.Linq;

Cree una clase ArrayCompare con la función Main() dentro.

class ArrayCompare {
  static void Main(string[] args) {}
}

Declare la variable isEqual como una variable de tipo de datos booleano. Devolverá True o False en función de si las arrays son iguales o no.

Boolean isEqual;

Inicialice dos arrays de tipo de datos int[] denominadas firstArray y secondArray, y asígneles valores enteros para comparar.

int[] firstArray = { 10, 20, 30, 40, 40, 50 };
int[] secondArray = { 10, 20, 30, 40, 40, 50 };

Usaremos el método SequenceEqual() para comparar estas dos arrays.

isEqual = firstArray.SequenceEqual(secondArray);

Ahora que tenemos un valor verdadero o falso guardado en la variable isEqual, debemos comprobar para ver qué devuelve. Si el valor devuelto es True, ejecutará el bloque if, y si el valor devuelto es False, ejecutará el bloque else.

if (isEqual) {
  Console.WriteLine("Both the arrays are equal");
} else {
  Console.WriteLine("Both the arrays are not equal");
}

Código fuente:

using System;
using System.Linq;

class ArrayCompare {
  static void Main(string[] args) {
    Boolean isEqual;
    int[] firstArray = { 10, 20, 30, 40, 40, 50 };
    int[] secondArray = { 10, 20, 30, 40, 40, 50 };
    isEqual = firstArray.SequenceEqual(secondArray);
    if (isEqual) {
      Console.WriteLine("Both the arrays are equal.");
    } else {
      Console.WriteLine("Both the arrays are not equal.");
    }
  }
}

Cuando ambas arrays son iguales,

Producción :

Both the arrays are equal.

Supongamos que cambiamos cualquier elemento en el firstArray en,

int[] firstArray = { 10, 20, 30, 40, 30, 60 };

Producción :

Both the arrays are not equal.

Comparar elementos coincidentes para comparar arrays en C#

Crearemos una variable booleana y estableceremos su valor en verdadero dentro de la función Main().

Boolean isEqual = true;

Inicialice dos arrays de la misma manera que lo hizo el método anterior.

int[] firstArray = { 10, 20, 30, 40, 40, 50 };
int[] secondArray = { 10, 20, 30, 40, 40, 50 };

Debemos determinar la longitud de ambas arrays. Además, para ser iguales, todos los valores de índice deben ser iguales.

Así que apliquemos una condición para asegurarnos de que las longitudes de primerArray y segundoArray sean iguales. Si devuelve True, debemos validar los valores en todos los índices; de lo contrario, el valor isEqual será falso.

Para verificar la igualdad de todos los índices de las arrays, usaremos un bucle for, comenzando en el índice 0 e iterando a lo largo de secondArray. Verificará los valores de todos los índices, y si todos no son iguales, establecerá el valor de isEqual en False.

if (firstArray.Length == secondArray.Length) {
  for (int y = 0; y < secondArray.Length; y++) {
    if (secondArray[y] != firstArray[y]) {
      isEqual = false;
    }
  }
} else {
  isEqual = false;
}

Por último, necesitamos mostrar el mensaje si las arrays son iguales.

if (isEqual) {
  Console.WriteLine("The arrays are equal");
} else {
  Console.WriteLine("The arrays are not equal");
}

Código fuente:

using System;

class ArrayCompare {
  static void Main(string[] args) {
    Boolean isEqual = true;
    int[] firstArray = { 10, 20, 30, 40, 40, 50 };
    int[] secondArray = { 10, 20, 30, 40, 40, 50 };
    if (firstArray.Length == secondArray.Length) {
      for (int y = 0; y < secondArray.Length; y++) {
        if (secondArray[y] != firstArray[y]) {
          isEqual = false;
        }
      }
    } else {
      isEqual = false;
    }
    if (isEqual) {
      Console.WriteLine("Both the arrays are equal.");
    } else {
      Console.WriteLine("Both the arrays are not equal.");
    }
  }
}

Cuando ambas arrays son iguales,

Producción :

Both the arrays are equal.

Si modificamos cualquier elemento en cualquiera de los dos arrays,

Producción :

Both the arrays are not equal.
Autor: Saad Aslam
Saad Aslam avatar Saad Aslam avatar

I'm a Flutter application developer with 1 year of professional experience in the field. I've created applications for both, android and iOS using AWS and Firebase, as the backend. I've written articles relating to the theoretical and problem-solving aspects of C, C++, and C#. I'm currently enrolled in an undergraduate program for Information Technology.

LinkedIn

Artículo relacionado - Csharp Array