Click here to Skip to main content
11,927,378 members (51,999 online)
Rate this:
Please Sign up or sign in to vote.
See more: C#

I am using dictionary of type dictinary. and i am reading in loop some data.
first time when i fill dictianry 1 and dictianry 2 all is fine.
next i have to change data in the dictianry and add it to dictianry 1.
for this I am clearing dictianry 2.

and when i do this operation the previous data also get changed.

As dictianry is of reference type.

I need work around for this.

Anyone ahve any idea?
Posted 15-Mar-12 4:13am
BobJanova 15-Mar-12 9:19am
Not clear. You can clear a dictionary (i.e. remove all items) using Dictionary.Clear().
SAKryukov 15-Mar-12 22:51pm
Dictionary of dictionary... do you mean one dictionary type is a key or a value in other dictionary? No, not clear. At least show your type in code.

And please explain why.
Rate this: bad
Please Sign up or sign in to vote.

Solution 1

You need to do a deep copy. Have a look at the following links for more info:[^]

Deep copy of objects in C#[^]

Good luck!
Rate this: bad
Please Sign up or sign in to vote.

Solution 2

It's due to the way you're copying the data. You're essentially adding an additional reference to the same object, so when you change it in one dictionary, it also changes in the other.

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

  Print Answers RSS
Top Experts
Last 24hrsThis month

Advertise | Privacy | Mobile
Web03 | 2.8.151126.1 | Last Updated 15 Mar 2012
Copyright © CodeProject, 1999-2015
All Rights Reserved. Terms of Service
Layout: fixed | fluid

CodeProject, 503-250 Ferrand Drive Toronto Ontario, M3C 3G8 Canada +1 416-849-8900 x 100