как вы клонируете словарь, такой как этот:
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.
Я хочу, чтобы объект 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;}
}