Hello everyone,


I am migrating from C++ to C#. Two questions about memory footprint of Dictionary class object instance.

1.

If I call remove method to remove some elements from the Dictionary, will the memory footprint be reduced? (suppose there is no other reference to the removed item) I have some suspecision that Dictionary is not truly removing the element and just mark a flag or something, which still refer this removed item to block it from GCed.

2.

I have two ideas to reduce memory footprint of Dictionary, one is mentioned in (1), to remove some entries. The other is to create a new Dictionary instance, and insert only necessary items into the new Dictionary instance, and reference only the new Dictionary instance in the future.

Which way is better from memory footprint reduce perspective?


thanks in advance,
George