你如何克隆一本这样的字典:
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 而不是新的 User 对象。
我希望复制用户对象,以便更改克隆属性不会反映在原始对象上。
编辑 :
所以我写了以下代码片段:
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;}
}