値としてリストを持っている辞書クローニング:あなたは、このようなこの一つとして辞書のクローンを作成しますか
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;}
}
うーん... Iこのような辞書を意味するDictionary> –
Attilah
いくつかのソースコードを表示してください。あなたは何を試しましたか? 「失敗する」とはどういう意味ですか?エラーメッセージ/例外はありますか? – Yahia
質問の本文にこれを入力できないようです(Dictionary>)。 :( –
Attilah