C-Sharp | Java | Python | Swift | GO | WPF | Ruby | Scala | F# | JavaScript | SQL | PHP | Angular | HTML
Part A: We copy the Dictionary into the second Dictionary "copy" by using the copy constructor.
Part B: The code adds a key to the first Dictionary. The key added after the copy was made is not in the copy.
Part C: We print the contents of both collections. The example demonstrates how the internal structures are copied.
ConsoleC# program that copies entire Dictionary
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
Dictionary<string, int> dictionary = new Dictionary<string, int>();
dictionary.Add("cat", 1);
dictionary.Add("dog", 3);
dictionary.Add("iguana", 5);
// Part A: copy the Dictionary to a second object.
Dictionary<string, int> copy = new Dictionary<string, int>(dictionary);
// Part B: change the first Dictionary.
dictionary.Add("fish", 4);
// Part C: display the 2 Dictionaries.
Console.WriteLine("--- Dictionary 1 ---");
foreach (var pair in dictionary)
{
Console.WriteLine(pair);
}
Console.WriteLine("--- Dictionary 2 ---");
foreach (var pair in copy)
{
Console.WriteLine(pair);
}
}
}
Output
--- Dictionary 1 ---
[cat, 1]
[dog, 3]
[iguana, 5]
[fish, 4]
--- Dictionary 2 ---
[cat, 1]
[dog, 3]
[iguana, 5]
Also: You could easily adapt the loop to copy to a Hashtable or List of KeyValuePair structs.
KeyValuePairImplementation of Dictionary copy constructor: C#
foreach (KeyValuePair<TKey, TValue> pair in dictionary)
{
this.Add(pair.Key, pair.Value);
}