Kopieren einer Liste in C#

Muhammad Maisam Abbas 16 Februar 2024
  1. Kopieren einer Liste mit Linq in C#
  2. Kopieren einer Liste mit dem List-Konstruktor in C#
Kopieren einer Liste in C#

In diesem Tutorial werden Methoden zum Kopieren einer Liste in C# vorgestellt.

Kopieren einer Liste mit Linq in C#

Der Linq kann SQL-ähnliche Abfragen für Datenstrukturen in C# ausführen. Wir können Linq mit der vordefinierten Methode item.Clone(/) verwenden, um eine Kopie einer Liste zu erstellen. Siehe das folgende Beispiel.

using System;
using System.Collections.Generic;
using System.Linq;

namespace copy_a_list {
  static class Extensions {
    public static List<T> Clone<T>(this List<T> listToClone)
        where T : ICloneable {
      return listToClone.Select(item => (T)item.Clone()).ToList();
    }
  }
  class Program {
    static void Main(string[] args) {
      List<string> slist = new List<string> { "ABC", "DEF", "GHI" };
      List<string> tlist = slist.Clone();
      foreach (var t in tlist) {
        Console.WriteLine(t);
      }
    }
  }
}

Ausgabe:

ABC
DEF
GHI

Wir haben die Erweiterungsfunktion Clone() erstellt, die mit einer generischen Liste verwendet werden soll. Die Funktion Clone() erstellt mit der Funktion item.Clone() eine separate Kopie jedes Elements in der Liste und gibt das Ergebnis in Form einer Liste mit der Funktion ToList() in C# zurück. In der Hauptfunktion haben wir die Liste der Strings slist initialisiert und in eine andere Liste der Strings tlist geklont. Wir können diesen Ansatz sowohl mit einer Werteliste als auch mit einer Referenzliste verwenden.

Kopieren einer Liste mit dem List-Konstruktor in C#

Eine andere einfachere Methode zum Erstellen einer Kopie einer Liste ist die Verwendung des Listenkonstruktors in C#. Wir können die vorherige Liste an den Konstruktor der neuen Liste übergeben, um eine Kopie der vorherigen Liste zu erstellen. Das folgende Codebeispiel zeigt, wie Sie mit dem Listenkonstruktor in C# eine separate Kopie einer Liste erstellen.

using System;
using System.Collections.Generic;
using System.Linq;

namespace copy_a_list {
  class Program {
    static void method2() {}
    static void Main(string[] args) {
      List<string> slist = new List<string> { "ABC", "DEF", "GHI" };
      List<string> tlist = new List<string>(slist);
      foreach (var t in tlist) {
        Console.WriteLine(t);
      }
    }
  }
}

Ausgabe:

ABC
DEF
GHI

Dieser Code ist viel einfacher und verständlicher als der vorherige Ansatz. Im obigen Code haben wir eine separate Kopie der Liste slist in die tlist erstellt, indem wir slist als Argument des Konstruktors von tlist übergeben haben. Wir können diesen Ansatz nur mit der Werteliste verwenden.

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn

Verwandter Artikel - Csharp List