Click here to Skip to main content
12,063,645 members (70,036 online)
Rate this:
 
Please Sign up or sign in to vote.
See more: C#
Hi

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
Comments
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.
--SA
Rate this: bad
 
good
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:
http://msdn.microsoft.com/en-us/library/system.object.memberwiseclone.aspx[^]

Deep copy of objects in C#[^]

Good luck!
  Permalink  
Rate this: bad
 
good
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.
  Permalink  
v2

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.160204.4 | Last Updated 15 Mar 2012
Copyright © CodeProject, 1999-2016
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