Wenn die Elemente vom Typ MyClassstatt sind Integer, werden dann auch die Elemente kopiert oder nur referenziert?
Pedro Moreira
5
Funktioniert nicht mit nicht primitiven Typen. List <StudentClass> copy = new List <StudentClass> (lstStudentClass);
grell
4
Es funktioniert mit allen Typen, solange lstStudentClasses ein ist IEnumerable<StudentClass>, wird es funktionieren. Wenn Sie etwas anderes erleben, müssen Sie weitere Informationen bereitstellen.
Lasse V. Karlsen
1
Was bedeutet (Original)? am Ende
Rahul Chaudhari
1
Sie übergeben eine Sammlung an den Konstruktor der Liste, und der Konstruktor kopiert dann alle Elemente dieser Sammlung in die neu erstellte Liste.
Lasse V. Karlsen
170
Um den Inhalt einer Liste zu einer anderen Liste hinzuzufügen, die bereits vorhanden ist, können Sie Folgendes verwenden:
targetList.AddRange(sourceList);
Wenn Sie nur eine neue Kopie der Liste erstellen möchten, lesen Sie die Antwort von Lasse.
Verursacht die Serialisierung einen erheblichen Leistungsverlust?
Dan Def
0
OK, das funktioniert gut. Aus den obigen Vorschlägen geht hervor, dass GetRange () für mich mit einer Liste als Argument nicht funktioniert ... also versüßen Sie die Dinge ein wenig aus den obigen Beiträgen: (Danke an alle :)
/* Where __strBuf is a string list used as a dumping ground for data */publicList<string> pullStrLst(){List<string> lst;
lst = __strBuf.GetRange(0, __strBuf.Count);
__strBuf.Clear();return( lst );}
mmm ... ok, einige der obigen Vorschläge funktionieren in Vis 17 einfach nicht. Ich habe die beste Antwort aufgeräumt ... und hey presto ... es funktioniert :)
Jim Stevens
0
Einfache Zuordnung verschiedener Listensätze durch linq ohne for-Schleife
Antworten:
Sie könnten dies versuchen:
Wenn Sie C # 3 und .NET 3.5 mit Linq verwenden, können Sie Folgendes tun:
quelle
MyClass
statt sindInteger
, werden dann auch die Elemente kopiert oder nur referenziert?lstStudentClass
es ein istIEnumerable<StudentClass>
, wird es funktionieren. Wenn Sie etwas anderes erleben, müssen Sie weitere Informationen bereitstellen.Um den Inhalt einer Liste zu einer anderen Liste hinzuzufügen, die bereits vorhanden ist, können Sie Folgendes verwenden:
Wenn Sie nur eine neue Kopie der Liste erstellen möchten, lesen Sie die Antwort von Lasse.
quelle
Für eine Liste von Elementen
Wenn Sie alle Elemente kopieren möchten
Wenn Sie die ersten 3 Elemente kopieren möchten
quelle
Und dies ist der Fall, wenn eine einzelne Eigenschaft in eine andere Liste kopiert werden muss:
quelle
Diese Methode erstellt eine Kopie Ihrer Liste, aber Ihr Typ sollte serialisierbar sein.
Verwenden:
Methode:
quelle
OK, das funktioniert gut. Aus den obigen Vorschlägen geht hervor, dass GetRange () für mich mit einer Liste als Argument nicht funktioniert ... also versüßen Sie die Dinge ein wenig aus den obigen Beiträgen: (Danke an alle :)
quelle
Einfache Zuordnung verschiedener Listensätze durch linq ohne for-Schleife
quelle
Hier eine andere Methode, aber es ist wenig schlimmer im Vergleich zu anderen.
quelle
ToList()
direkt?