このような辞書をどのように複製しますか :
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 は、新しい User オブジェクトではなく、引き続き 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;}
}