Wie übertrage ich die in einem Artikel enthaltenen List
zu einem anderen in C# ohne Verwendung von foreach
?
Antworten
Zu viele Anzeigen?Sie könnten dies versuchen:
List<Int32> copy = new List<Int32>(original);
oder wenn Sie C# 3 und .NET 3.5 verwenden, mit Linq, können Sie dies tun:
List<Int32> copy = original.ToList();
Wie ich sehe, wird diese Antwort immer noch hochgestuft. Nun, hier ist ein Geheimnis für dich: die obige Antwort verwendet immer noch ein foreach . Bitte bewerten Sie dies nicht weiter hoch.
Jon Skeet
Punkte
1325502
Paras
Punkte
2937
Für eine Liste von Elementen
List<string> lstTest = new List<string>();
lstTest.Add("test1");
lstTest.Add("test2");
lstTest.Add("test3");
lstTest.Add("test4");
lstTest.Add("test5");
lstTest.Add("test6");
Wenn Sie alle Elemente kopieren möchten
List<string> lstNew = new List<string>();
lstNew.AddRange(lstTest);
Wenn Sie die ersten 3 Elemente kopieren möchten
List<string> lstNew = lstTest.GetRange(0, 3);
usefulBee
Punkte
8632
garish
Punkte
557
Mit dieser Methode wird eine Kopie Ihrer Liste erstellt, aber Ihr Typ sollte serialisierbar sein.
Verwendung:
List<Student> lstStudent = db.Students.Where(s => s.DOB < DateTime.Now).ToList().CopyList();
Methode:
public static List<T> CopyList<T>(this List<T> lst)
{
List<T> lstCopy = new List<T>();
foreach (var item in lst)
{
using (MemoryStream stream = new MemoryStream())
{
BinaryFormatter formatter = new BinaryFormatter();
formatter.Serialize(stream, item);
stream.Position = 0;
lstCopy.Add((T)formatter.Deserialize(stream));
}
}
return lstCopy;
}
- See previous answers
- Weitere Antworten anzeigen