2011-05-11 16 views

Respuesta

51

Suponiendo que quiere decir que usted quiere que sean los objetos individuales, y no referencias al mismo objeto:

Dictionary<string, string> d = new Dictionary<string, string>(); 
Dictionary<string, string> d2 = new Dictionary<string, string>(d); 

"para que ellos no son un mismo objeto."

ambigüedad abundan - si usted realmente quiere que sean referencias al mismo objeto:

Dictionary<string, string> d = new Dictionary<string, string>(); 
Dictionary<string, string> d2 = d; 

(Cambiar o bien d o d2 después de la anterior afectarán tanto)

+1

Justo como nota al margen, algo que me hizo tropezar una vez. Si utiliza este método para copiar un diccionario estático, los cambios realizados en la copia seguirán afectando al original. – stuicidle

5
using System; 
using System.Collections.Generic; 

class Program 
{ 
    static void Main(string[] args) 
    { 
     Dictionary<string, string> first = new Dictionary<string, string>() 
     { 
      {"1", "One"}, 
      {"2", "Two"}, 
      {"3", "Three"}, 
      {"4", "Four"}, 
      {"5", "Five"}, 
      {"6", "Six"}, 
      {"7", "Seven"}, 
      {"8", "Eight"}, 
      {"9", "Nine"}, 
      {"0", "Zero"} 
     }; 

     Dictionary<string, string> second = new Dictionary<string, string>(); 
     foreach (string key in first.Keys) 
     { 
      second.Add(key, first[key]); 
     } 

     first["1"] = "newone"; 
     Console.WriteLine(second["1"]); 
    } 
}