Я пишу пользовательский класс, который реализует IDictionary
, и я не уверен, что делать с CopyTo
. Должен ли каждый элемент просто копироваться в целевой массив (мелкая копия), или я должен сделать копию/клон каждого элемента, а затем поместить его в целевой массив (глубокая копия)?Реализация ICollection.CopyTo в C#: глубокая или мелкая копия?
3
A
ответ
5
Реализация не определена договором, однако все общие коллекции, по-видимому, выполняют мелкую копию (см. http://referencesource.microsoft.com/#q=List.CopyTo). Это имеет смысл, поскольку нет определенного способа глубоко скопировать любой object
, который будет частью реализации CopyTo
.
Это зависит от вашего сценария, если вы вообще не собираетесь использовать этот метод, подумайте о том, чтобы не реализовать его и выбросить NotSupportedException
. Если другие будут использовать вашу коллекцию, выполните мелкую копию для выравнивания со стандартной библиотекой .NET. Если вам нужен метод глубокой копии, добавьте его как отдельный метод (возможно, путем реализации ICloneable
).
Смежные вопросы
- 1. Мелкая копия или глубокая копия?
- 2. Глубокая копия и мелкая копия
- 3. Назначение объектов в Javascript: мелкая или глубокая копия?
- 4. Неверная копия и глубокая копия в C
- 5. C# Мелкая копия Словарь?
- 6. метод clone в списках на Java - это мелкая копия или глубокая копия?
- 7. Глубокая копия объекта C#
- 8. Нужна ли мелкая копия?
- 9. Библиотека объектов - значение индекса доступа или сам объект? (например, глубокая или мелкая копия, возможно?)
- 10. мелкая копия arraylist
- 11. глубокая копия или клон UIComponent
- 12. Когда требуется мелкая копия (вместо глубокой копии)?
- 13. Конструктор копии на C++ и мелкая копия
- 14. Копировальный конструктор (глубокая копия) C++
- 15. Копирование списка в python: глубокая или мелкая копия: gotcha for me in python?
- 16. Простой вопрос - Мелкая копия (VB.Net)
- 17. глубокая копия общего списка
- 18. Глубокая копия панды панели?
- 19. Действительно ли создается мелкая копия?
- 20. метод Array.Clone - это мелкая копия?
- 21. Что такое мелкая копия массива
- 22. Глубокая копия структуры графа
- 23. глубокая изменяемая копия NSMutableDictionary
- 24. Ручная глубокая копия на устройство в C
- 25. Мелкая копия объекта в намерении в android
- 26. Ссылка, неглубокая и глубокая копия
- 27. ArrayList (полностью глубокая копия)
- 28. Конкретно глубокая копия ломтик?
- 29. Глубокая копия() Java ByteBuffer
- 30. глубокая копия вектора в AS3
Кому: КопитТо Вы намереваетесь? 'IEnumerable' не имеет метода' CopyTo'. –
@JohnSaunders 'ICollection' делает, хотя, поскольку OP реализует' IDictionary', я подозреваю, что им нужно реализовать 'ICollection.CopyTo'. –
Я подозреваю то же самое, но мы должны требовать точности, поскольку компьютеры делают именно то, что мы им говорим. –