Ein Array in C# umkehren

Syed Hassan Sabeeh Kazmi 12 Oktober 2023
  1. Schreiben Sie einen Algorithmus zum Umkehren eines Arrays in C#
  2. Verwenden Sie die Methode Array.Reverse(), um ein Array in C# umzukehren
  3. Verwenden Sie die Methode Enumerable.Reverse(), um ein Array in C# umzukehren
  4. Abschluss
Ein Array in C# umkehren

In diesem Tutorial lernen Sie verschiedene Möglichkeiten kennen, ein Array in C# umzukehren, einschließlich vordefinierter Methoden. Im Allgemeinen erfordert es die Erstellung einer temp-Variablen, um den ersten Indexwert eines Arrays temp = arr[0] zu speichern, den zweiten Indexwert in arr[0] zu speichern, wie arr[0] = arr[1] und speichern Sie den temp-Wert in arr[1].

Es ist ein allgemeines Konzept, ein kurzes Array umzukehren, und Schleifen können dabei helfen, die umgekehrten Operationen auf den großen Arrays in C# zu handhaben.

Schreiben Sie einen Algorithmus zum Umkehren eines Arrays in C#

Die Kunst des Tauschens ist äußerst effizient beim Umkehren eines Arrays in C#. Es ist wichtig, ein Variablenpaar namens startIndex und endIndex zu definieren und ihre Werte mit 0 bzw. n-1 zu initialisieren, wobei n die Länge eines Arrays darstellt.

Sie können das Konzept des Vertauschens der Werte beider Variablen und das Erhöhen des Werts von startIndex um eins +1 und das Verringern des endIndex um eins (-1) in einen Algorithmus in C# implementieren, indem Sie die for Schleife. Wiederholen Sie diesen Schritt, bis der Wert startIndex kleiner als der Wert endIndex ist, und drucken Sie das Array als umgekehrtes Array.

Es ist ein einfacher Ansatz, ein Array umzukehren, ohne zusätzliche Leerzeichen zu verwenden, indem Sie nur Werte austauschen. Daher ist die Zeitkomplexität des umgekehrten Arrays O(n) und seine Raumkomplexität ist O(1).

Sie müssen nur über die erste Hälfte eines Arrays arr.Length / 2 iterieren. Beim Durchlaufen des gesamten Arrays bedeutet arr.Length, dass das Array zweimal umgekehrt wird und das gleiche Ergebnis wie das ursprüngliche Array ausgibt.

using System;

public class reverseArrayAlgo {
  public static void Main(string[] args) {
    // create an array containing five integer values
    int[] expArray = { 4, 5, 6, 7, 8 };

    // display the original array
    Console.Write("The elements of the original array: ");
    for (int rep = 0; rep < expArray.Length; rep++) {
      Console.Write(expArray[rep] + " ");
    }

    // call a method that contains the algorithm to reverse the `expArray` array
    arrayReverse(expArray, 0, (expArray.Length - 1));

    // display the reversed array
    Console.Write("\r\nThe elements of the reversed array: ");
    for (int repo = 0; repo < expArray.Length; repo++) {
      Console.Write(expArray[repo] + " ");
    }
  }

  // create a method to reverse an array
  public static void arrayReverse(int[] expArray, int startIndex, int endIndex) {
    while (startIndex < endIndex) {
      int objTemp = expArray[startIndex];
      expArray[startIndex] = expArray[endIndex];
      expArray[endIndex] = objTemp;
      startIndex++;
      endIndex--;
    }
  }
}

Ausgang:

The elements of the original array: 4 5 6 7 8

The elements of the reversed array: 8 7 6 5 4

Verwenden Sie die Methode Array.Reverse(), um ein Array in C# umzukehren

Es gehört zur Klasse Array im Namensraum System und ist eine effiziente Möglichkeit, ein Array in C# umzukehren. Es verarbeitet das eindimensionale Array, indem es es als Argument nimmt, um sein Format umzukehren, sodass Sie ein umgekehrtes Array als Ausgabe erhalten können.

Anstatt ein neues Array zu erstellen, ändert es das ursprüngliche Array. Sie können die Methode Enumerable.Reverse() verwenden, wenn Sie mit der Änderung des ursprünglichen Arrays, die im Namensraum System.Linq verfügbar ist, nicht zufrieden sind.

Als statische Methode für den Array-Typ funktioniert es, indem es die vorhandenen Elemente oder Werte des angegebenen Arrays ohne zusätzliches Leerzeichen oder Array überschreibt.

Es löst mehrere Arten von Ausnahmen aus, wenn ein Array null oder mehrdimensional ist; der Index ist kleiner als die untere Grenze des Arrays, die Länge ist kleiner als Null oder der Index und die Länge geben keinen gültigen Bereich im Array an. Nach einem Aufruf dieser Methode werden die Elemente bei expArray[repo] (wobei expArray ein Array darstellt und repo ein Index im Array ist) nach expArray[i] verschoben, wobei i gleich ist:

(myArray.Length + myArray.GetLowerBound(0)) - (i - myArray.GetLowerBound(0)) - 1

Diese Methode ist eine O(n)-Operation, wobei n die Länge eines Arrays darstellt. Der an diese Methode übergebene Parameterwerttyp ist System.Array, der das umzukehrende eindimensionale Array darstellt.

Beispielcode:

using System;

public class reverseArrayAlgo {
  public static void Main(string[] args) {
    // create an array containing five integer values
    int[] expArray = { 4, 5, 6, 7, 8 };

    // display the original array
    Console.Write("The elements of the original array: ");
    for (int rep = 0; rep < expArray.Length; rep++) {
      Console.Write(expArray[rep] + " ");
    }

    // call the `Array.Reverse()` method to reverse the `expArray` array by passing it through the
    // method's parameter
    Array.Reverse(expArray);

    // display the reversed array
    Console.Write("\r\nThe elements of the reversed array: ");
    for (int repo = 0; repo < expArray.Length; repo++) {
      Console.Write(expArray[repo] + " ");
    }
  }
}

Ausgang:

The elements of the original array: 4 5 6 7 8

The elements of the reversed array: 8 7 6 5 4

Verwenden Sie die Methode Enumerable.Reverse(), um ein Array in C# umzukehren

Es ist eine nützliche Möglichkeit, die Reihenfolge der Elemente in einem Array umzukehren, ohne das ursprüngliche oder zugrunde liegende Array zu ändern, indem eine neue Sequenz von Elementen in umgekehrter Reihenfolge erstellt wird. Rufen Sie die Methode Enumerable.Reverse() auf, um die Reihenfolge der Elemente eines Arrays umzukehren, was bequemer und einfacher zu lesen ist als jede andere Methode oder jeder benutzerdefinierte Umkehralgorithmus.

Er gehört zum Namensraum System.Linq und liefert eine Sequenz zurück, deren Elemente in umgekehrter Reihenfolge der Eingabesequenz entsprechen. Sein Wert, der alle Informationen speichert, die zum Ausführen der umgekehrten Operation erforderlich sind, ist ein unmittelbares Rückgabeobjekt, das durch verzögerte Ausführung implementiert wird.

Sie können die Methode foreach verwenden oder die Methode Getnumerator direkt aufrufen, um das Objekt für die perfekte Ausführung dieser Methode aufzulisten. Im Gegensatz zu OrderBy berücksichtigt das Enumerable.Array() als Sortiermethode nicht die tatsächlichen Werte bei der Bestimmung der Reihenfolge.

Beispielcode:

using System;
using System.Linq;

public class reverseArrayAlgo {
  public static void Main(string[] args) {
    // create an array containing five integer values
    int[] expArray = { 4, 5, 6, 7, 8 };

    // display the original array
    Console.Write("The elements of the original array: ");
    for (int rep = 0; rep < expArray.Length; rep++) {
      Console.Write(expArray[rep] + " ");
    }

    // call the `Enumerable.Reverse()` method to reverse the `expArray` array by passing it through
    // the method's parameter
    int[] reverse = Enumerable.Reverse(expArray).ToArray();

    // another alternative to display the reverse array
    // Console.WriteLine(String.Join(',', reverse));

    // display the reversed array
    Console.Write("\r\nThe elements of the reversed array: ");
    for (int repo = 0; repo < reverse.Length; repo++) {
      Console.Write(reverse[repo] + " ");
    }
  }
}

Ausgang:

The elements of the original array: 4 5 6 7 8

The elements of the reversed array: 8 7 6 5 4

Abschluss

In diesem Tutorial wurden drei Möglichkeiten zum Umkehren eines Arrays in C# erläutert. Dieses Tutorial enthält vereinfachte und optimierte Beispiele des ausführbaren C#-Codes zum tieferen Verständnis.

Jede umgekehrte Methode hat ihre einzigartigen Eigenschaften und Vorteile gegenüber der anderen. Wählen Sie diejenige, die Ihren Bedürfnissen am besten entspricht.

Syed Hassan Sabeeh Kazmi avatar Syed Hassan Sabeeh Kazmi avatar

Hassan is a Software Engineer with a well-developed set of programming skills. He uses his knowledge and writing capabilities to produce interesting-to-read technical articles.

GitHub

Verwandter Artikel - Csharp Array