I'm writing a custom class which implements IDictionary
, and I'm not sure what to do about CopyTo
. Should each element just be copied to the target array (shallow copy), or should I make a copy/clone of each element then place it in the target array (deep copy)?
Implementing ICollection.CopyTo in C#: deep or shallow copy?
1.5k views Asked by Eric Dand At
1
There are 1 answers
Related Questions in C#
- What is the code of the sorted function?
- I'm trying to make the "merge function" work by writing a Callback.
- Split a large query (2 days) into pieces to increase the speed in Postgres
- Recursive function in PHP function : how to prevent return value?
- Javascript function onclick
- Borland c++: Error while assigning OnChange to another function?
- Control BX Slider from outside of function
- Jquery Resize: how to check if a screen has been resized at any point
- OrientDB - SQL command to pass array value as parameter in OrientDB function
- Check if a private function exists inside an object in JavaScript
Related Questions in COPY
- What is the code of the sorted function?
- I'm trying to make the "merge function" work by writing a Callback.
- Split a large query (2 days) into pieces to increase the speed in Postgres
- Recursive function in PHP function : how to prevent return value?
- Javascript function onclick
- Borland c++: Error while assigning OnChange to another function?
- Control BX Slider from outside of function
- Jquery Resize: how to check if a screen has been resized at any point
- OrientDB - SQL command to pass array value as parameter in OrientDB function
- Check if a private function exists inside an object in JavaScript
Related Questions in CLONE
- What is the code of the sorted function?
- I'm trying to make the "merge function" work by writing a Callback.
- Split a large query (2 days) into pieces to increase the speed in Postgres
- Recursive function in PHP function : how to prevent return value?
- Javascript function onclick
- Borland c++: Error while assigning OnChange to another function?
- Control BX Slider from outside of function
- Jquery Resize: how to check if a screen has been resized at any point
- OrientDB - SQL command to pass array value as parameter in OrientDB function
- Check if a private function exists inside an object in JavaScript
Related Questions in INTERFACE-IMPLEMENTATION
- What is the code of the sorted function?
- I'm trying to make the "merge function" work by writing a Callback.
- Split a large query (2 days) into pieces to increase the speed in Postgres
- Recursive function in PHP function : how to prevent return value?
- Javascript function onclick
- Borland c++: Error while assigning OnChange to another function?
- Control BX Slider from outside of function
- Jquery Resize: how to check if a screen has been resized at any point
- OrientDB - SQL command to pass array value as parameter in OrientDB function
- Check if a private function exists inside an object in JavaScript
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
Popular Tags
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
The implementation is not defined by the contract, however all the generic collections appear to do a shallow copy (see http://referencesource.microsoft.com/#q=List.CopyTo). It makes sense, as there is no defined way to deep copy any
object
, which would be part of theCopyTo
implementation.It depends on your scenario, if you do not intend to use this method at all, consider not implementing it and throwing a
NotSupportedException
. If others will use your collection, implement a shallow copy to align with the standard .NET library. If you need a deep copy method, add it as a separate method, (potentially by implementingICloneable
).