Arrays vergleichen in C#

Saad Aslam 12 Oktober 2023
  1. Verwenden Sie die Funktion SequenceEqual(), um Arrays in C# zu vergleichen
  2. Vergleichen Sie übereinstimmende Elemente, um Arrays in C# zu vergleichen
Arrays vergleichen in C#

Dieser Artikel behandelt den Vergleich zweier Arrays, um festzustellen, ob sie gleich sind.

Die beiden Methoden, die wir besprechen und implementieren werden, um die Arrays zu vergleichen, sind:

  • die Funktion SequenceEqual();
  • Vergleich der übereinstimmenden Elemente in jedem der Arrays.

Wenn zwei Arrays die gleichen übereinstimmenden Elemente und die gleiche Anzahl von Elementen haben, werden sie als gleich bezeichnet.

Verwenden Sie die Funktion SequenceEqual(), um Arrays in C# zu vergleichen

Zuerst müssen wir die Bibliothek importieren, um auf die Funktion SequenceEqual() zugreifen zu können.

using System.Linq;

Erstellen Sie eine ArrayCompare-Klasse mit der darin enthaltenen Main()-Funktion.

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

Deklarieren Sie die Variable isEqual als Variable vom Datentyp Boolean. Es wird True oder False zurückgeben, je nachdem, ob die Arrays gleich sind oder nicht.

Boolean isEqual;

Initialisieren Sie zwei Arrays vom Datentyp int[] mit den Namen firstArray und secondArray und weisen Sie ihnen ganzzahlige Werte zu, die verglichen werden sollen.

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

Wir verwenden die Methode SequenceEqual(), um diese beiden Arrays zu vergleichen.

isEqual = firstArray.SequenceEqual(secondArray);

Nachdem wir nun einen wahren oder falschen Wert in der Variablen isEqual gespeichert haben, müssen wir prüfen, was sie zurückgibt. Wenn der zurückgegebene Wert wahr ist, wird der if-Block ausgeführt, und wenn der zurückgegebene Wert falsch ist, wird der else-Block ausgeführt.

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

Quellcode:

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.");
    }
  }
}

Wenn beide Arrays gleich sind,

Ausgabe:

Both the arrays are equal.

Angenommen, wir ändern ein beliebiges Element im firstArray in,

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

Ausgabe:

Both the arrays are not equal.

Vergleichen Sie übereinstimmende Elemente, um Arrays in C# zu vergleichen

Wir erstellen eine boolesche Variable und setzen ihren Wert innerhalb der Funktion Main() auf true.

Boolean isEqual = true;

Initialisieren Sie zwei Arrays auf die gleiche Weise wie bei der vorherigen Methode.

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

Wir müssen die Länge beider Arrays bestimmen. Um gleich zu sein, müssen außerdem alle Indexwerte gleich sein.

Wenden wir also eine Bedingung an, um sicherzustellen, dass die Längen von firstArray und secondArray gleich sind. Wenn es True zurückgibt, müssen wir die Werte an allen Indizes validieren; andernfalls ist der isEqual-Wert falsch.

Um die Gleichheit aller Indizes von Arrays zu überprüfen, verwenden wir eine for-Schleife, die bei Index 0 beginnt und über die Länge von secondArray iteriert. Es überprüft die Werte aller Indizes, und wenn sie nicht alle gleich sind, setzt es den Wert von isEqual auf False.

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

Als letztes müssen wir noch die Meldung ausgeben, ob die Arrays gleich sind.

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

Quellcode:

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.");
    }
  }
}

Wenn beide Arrays gleich sind,

Ausgabe:

Both the arrays are equal.

Wenn wir ein beliebiges Element in zwei beliebigen Arrays ändern,

Ausgabe:

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

Verwandter Artikel - Csharp Array