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.
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