Если элементы относятся к типу, MyClassа Integerне к ним, копирует ли он элементы или просто ссылается на них?
Педро Морейра
6
Не работает с не примитивными типами. List <StudentClass> copy = new List <StudentClass> (lstStudentClass);
кричать
4
Он работает со всеми типами, до тех пор , как lstStudentClassэто IEnumerable<StudentClass>, он будет работать. Если вы испытываете иное, вам нужно предоставить больше информации.
Лассе В. Карлсен
1
что означает (оригинал); в конце
Рахул Чаудхари
1
Вы передаете коллекцию конструктору списка, и конструктор затем скопирует все элементы этой коллекции во вновь созданный список.
Лассе В. Карлсен
170
Чтобы добавить содержимое одного списка в другой, который уже существует, вы можете использовать:
targetList.AddRange(sourceList);
Если вы просто хотите создать новую копию списка, посмотрите ответ Лассе.
Создает ли сериализация существенное снижение производительности?
Dan Def
0
ОК, это работает хорошо. Из приведенных выше предложений GetRange () не работает для меня со списком в качестве аргумента ... так что немного подсластите посты выше: (спасибо всем :)
/* 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 );}
ммм ... ладно, некоторые из вышеперечисленных предложений просто не работают в Vis 17. Я убрал лучший ответ при условии ... и эй предыстория ... это работает :)
Джим Стивенс
0
Легко отобразить другой набор списка по linq без цикла for
Ответы:
Вы можете попробовать это:
или если вы используете C # 3 и .NET 3.5 с Linq, вы можете сделать это:
источник
MyClass
аInteger
не к ним, копирует ли он элементы или просто ссылается на них?lstStudentClass
этоIEnumerable<StudentClass>
, он будет работать. Если вы испытываете иное, вам нужно предоставить больше информации.Чтобы добавить содержимое одного списка в другой, который уже существует, вы можете использовать:
Если вы просто хотите создать новую копию списка, посмотрите ответ Лассе.
источник
Для списка элементов
Если вы хотите скопировать все элементы
Если вы хотите скопировать первые 3 элемента
источник
И это если необходимо скопировать одно свойство в другой список:
источник
Этот метод создаст копию вашего списка, но ваш тип должен быть сериализуемым.
Использование:
Метод:
источник
ОК, это работает хорошо. Из приведенных выше предложений GetRange () не работает для меня со списком в качестве аргумента ... так что немного подсластите посты выше: (спасибо всем :)
источник
Легко отобразить другой набор списка по linq без цикла for
источник
Здесь другой метод, но он немного хуже по сравнению с другим.
источник
ToList()
напрямую?