2011-05-11 17 views

cevap

51

sen bunları tek tek nesneler ve aynı nesneye değil referanslar olmak istiyorum demek varsayarsak: "Onlar değil ki aynı nesne"

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

Belirsizlik bol - bunları aynı nesneye başvuruları olmak istiyorum aslında yoksa: (her ikisi etkileyecektir yukarıda da sonra d veya d2 değiştirme)

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

+1

Sadece Bir yan not olarak, beni bir kez düşüren bir şey. Statik bir sözlüğü kopyalamak için bu yöntemi kullanırsanız, kopyada yapılan değişiklikler yine de orijinali etkileyecektir. – 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"]); 
    } 
} 
İlgili konular