в C# после добавления объекта в коллекцию, если другая копия (глубокая копия) всегда создается?коллекция вопрос о поведении
ответ
Нет, если это класс, большинство объектов есть, только ссылка на тот же объект хранится в коллекции.
Если это тип значения, такой как int, double и structs, создается копия (а не глубокая копия, если структура имеет ссылку на объект класса, который, в свою очередь, не будет скопирован).
Edit:
Для глубокой копии объектов, сначала необходимо создать глубокую функцию копирования.
Посмотрите на Create a Deep Copy in C# или How to make a deep copy in C# ?
Затем вы можете запустить свой метод глубокой копии, прежде чем добавлять элементы в свою коллекцию.
Примечание
Это не очень часто вы действительно нуждаетесь в истинной глубокой копии. Часто лучше переосмыслить поток данных в приложении.
Если вы спрашиваете о том, что происходит с коллекцией, то это зависит:
Обычно, коллекция будет создана с некоторыми «пустыми» слотами, так что добавление к нему не вызовет новую коллекцию с новым размер которого будет создан.
Если, однако, новый элемент выходит за рамки этого размера, будет создана новая коллекция, и все элементы будут скопированы на нее.
Если вы спрашиваете о самом продукте, опять-таки, это зависит:
Если тип значения (целое, двойные, структуры, например), то значение будет скопировано, если ссылочный тип, будет использоваться копия ссылки на тот же объект.
@Downvoter - поясните пожалуйста. – Oded
- 1. java.util.TreeMap вопрос о поведении
- 2. python - странный вопрос о поведении
- 3. вопрос о поведении сенсорных фаз
- 4. Вопрос о поведении сервлета Java
- 5. Два быстрый вопрос о поведении сделки
- 6. Вопрос о поведении ассемблера Intel x86
- 7. О поведении pthread_kill()
- 8. Flex AdvancedDataGrid AdvancedDataGridRendererProvider childrenField ArrayCollection - вопрос о поведении
- 9. Вопрос о поведении C для неподписанного целочисленного нижнего потока
- 10. О поведении JSLint
- 11. Смутно о поведении re.compile
- 12. Уточнение о поведении request_threaded_irq
- 13. Запрос о поведении MySql
- 14. О поведении станд :: двигаться
- 15. javascript - объяснение просьба о поведении
- 16. О поведении труб в окнах
- 17. Не упоминание о поведении sms
- 18. Смутно о поведении базового класса
- 19. Миф о поведении предложения HAVING
- 20. Поведение функции оповещений о поведении
- 21. Вопрос о стандарте C++
- 22. фильтра коллекция вопрос
- 23. Форма Коллекция вопрос
- 24. коллекция Backbone пустого вопрос
- 25. NHibernate запрос объект коллекция вопрос
- 26. Наблюдаемая коллекция коллекции изменила вопрос
- 27. Confused о поведении CONCAT() и объект возвращается
- 28. Запрос о поведении константы в тензорном потоке
- 29. Objective C UI Коллекция вопрос
- 30. магистральная маршрутизатор и коллекция вопрос
Затем, как получить глубокую скопированную коллекцию? – user496949