Wie übertrage ich die in einem List
enthaltenen Artikel in einen anderen in C#, ohne foreach
zu verwenden?Wie kopiere ich Objekte von Liste zu Liste ohne foreach?
Antwort
Sie konnten dieses versuchen:
List<Int32> copy = new List<Int32>(original);
oder wenn Sie C# 3 und .NET 3.5, mit Linq verwenden, können Sie dies tun:
List<Int32> copy = original.ToList();
Wenn die Elemente vom Typ sind MyClass' statt 'Integer', kopiert es auch die Objekte oder referenziert sie? –
Nicht mit nicht-primitiven Typen arbeiten. Liste
Es funktioniert mit allen Typen, solange 'lstStudentClass' eine' IEnumerable
Um den Inhalt eines hinzufügen Liste auf eine andere Liste, die bereits vorhanden ist, können Sie:
targetList.AddRange(sourceList);
Wenn Sie gerade wollen, um eine neue Kopie der Liste erstellen, sehen Lasse Antwort.
.AddRange mehr performant als neue Liste = IEnum.ToList()? – mrmillsy
@mrmillsy: Nun, sie machen verschiedene Dinge. Meine Antwort konzentriert sich auf "Ich habe bereits eine Liste, und ich möchte die Dinge darauf kopieren" –
True. Meine Frage wäre wahrscheinlich besser für eine neue Frage geeignet. Danke für die Antwort. – mrmillsy
Hier eine andere Methode, aber es ist etwas schlechter im Vergleich zu anderen.
List<int> i=original.Take(original.count).ToList();
Warum würden Sie das tun? Warum nicht 'ToList()' direkt? – nawfal
Eine Liste der Elemente
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
List<string> lstNew = new List<string>();
lstNew.AddRange(lstTest);
alle Elemente kopiert werden soll Wenn Sie die ersten drei Elemente kopieren möchten
List<string> lstNew = lstTest.GetRange(0, 3);
Diese Methode erstellt eine Kopie Ihres l ist 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;
}
Führt die Serialisierung zu erheblichen Leistungseinbußen? –
Und das ist, wenn eine einzelne Eigenschaft in einer anderen Liste Kopieren benötigt wird:
targetList.AddRange(sourceList.Select(i => i.NeededProperty));
OK das ist funktioniert gut Aus den oben genannten Vorschlägen GetRange() für mich nicht als Argument mit einer Liste arbeiten ... so Dinge ein wenig von den Pfosten Süßen oben: (Dank jeden
/* Where __strBuf is a string list used as a dumping ground for data */
public List <string> pullStrLst()
{
List <string> lst;
lst = __strBuf.GetRange(0, __strBuf.Count);
__strBuf.Clear();
return(lst);
}
Dies ist nicht einmal eine Antwort. –
mmm ... ok gut einige der obigen Vorschläge funktionieren einfach nicht in Vis 17 Ich habe die beste Antwort zur Verfügung gestellt ... und hey presto ... es funktioniert :) –
- 1. Zufällige Objekte zu einer Liste ohne Wiederholung
- 2. Wie AddOrUpdate von einer Liste ohne foreach-Anweisung?
- 3. Wie Kopiere Liste des Datenbankobjekts in verschiedenen Arten von Listenobjekt?
- 4. Wie kopiere ich Objekte von einer DropDownList zu einer anderen
- 5. Get Liste der Eigenschaften von Liste der Objekte
- 6. Wie kopiere verknüpfte Liste in Python?
- 7. Liste ForEach break
- 8. Wie kopiere ich Objekte in Qt?
- 9. Hinzufügen Suffix zu einer Liste mit foreach
- 10. Wie kann ich eine Java-Liste mit Scala foreach verwenden?
- 11. Füllen einer Liste in einer Liste in C# ohne foreach-Schleife. besserer Weg?
- 12. Wie die Liste der übergeordneten Objekte zu finden, indem die Liste der Kinder vorbei Objekte
- 13. Prolog: Liste der Objekte
- 14. Schleife von Kontrollkästchen Objekte hinzufügen Liste modellieren
- 15. Vereinbaren Liste in reverse_array innerhalb von {foreach}
- 16. Wie kann ich die Liste von Erlangs Liste verketten, ohne das List-Modul zu verwenden?
- 17. Liste der Objekte Collections.map
- 18. Liste der Objekte zu JSON mit Python
- 19. Generische Liste FindAll() vs. foreach
- 20. Erstellen Sie eine kommagetrennte Liste aus der Liste der Objekte
- 21. Objekte zu einer leeren Liste hinzufügen
- 22. Liste der Objekte zu Excel-Tabelle?
- 23. Konvertieren von IQueryable zu Liste und Iterieren mit foreach
- 24. Wie kann ich eine Liste in foreach umkehren?
- 25. Wie erhalte ich eine dynamische Liste von Eigenschaftswerten einer Liste?
- 26. Anhängen an eine Python-Liste, ohne eine Liste zu erstellen
- 27. Wie bekomme ich die ersten 10 sortierten Artikel einer Liste, ohne die ganze Liste zu sortieren
- 28. Convert JSON-String zur Liste der Objekte
- 29. Liste der nicht initialisierten Objekte
- 30. Convert Liste der Objekte von Schnittstellen
:) Wenn Sie einen tiefen Klon brauchen die ursprüngliche Liste finden Sie die Antwort in dieser verwandten Frage: http://stackoverflow.com/questions/222598/how-do-i-clone-a-generic-list-in-c –