你如何克隆一個字典,如這一個詞典:克隆具有列表作爲值
Dictionary<int, List<User>>()
每次嘗試我做克隆它最終失敗的。
如果我有這樣的:
Dictionary<int, List<User>> dict1 = new Dictionary<int, List<User>>();
User user1=new User{Name="Mey"};
dict1.Add(1,user1);
這樣做:
var dict2 = new Dictionary<int, List<User>>(dict1);
dict2仍然會引用user1的,而不是一個新的用戶對象。
我希望用戶對象被複制,以便更改克隆屬性不反映在原始對象上。
編輯:
所以我寫了下面的代碼片段:
var dict2 = new Dictionary<int, List<User>>();
//clone the dict1 dictionary
foreach (var item in dict1)
{
var list = new List<User>();
foreach (var u in item.Value)
{
list.Add(new User{ Name = u.Name, Total=u.Total});
}
dict2.Add(item.Key, list);
}
class User
{
public string Name{get;set;}
public double Total{get;set;}
}
嗯...我意思是這樣的字典Dictionary> –
Attilah
請顯示一些源代碼..你有什麼嘗試? 「失敗」是什麼意思?任何錯誤消息/例外? – Yahia
我似乎無法在問題的主體中輸入此字典>)。 :( –
Attilah