C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[1]: 複製の作り方について


(過去ログ 126 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■75073 / inTopicNo.1)  複製の作り方について
  
□投稿者/ よぽん (9回)-(2015/02/25(Wed) 08:53:09)

分類:[C#] 

Windows7、VisualStudio2013を使用しています。

以下のようにDictionaryのデータの複製を作りたいのですが
foreach を使ってひたすらコピーするしかないのでしょうか>?
ToArray とか ToCopy で簡単にできませんか?
よろしくお願いします。


Dictionary<string, string> da = new Dictionary<string, string>();
Dictionary<string, string> db = new Dictionary<string, string>();

da.Add("1", "A");
da.Add("2", "B");

db = da; ←これだと db も da も一緒になっちゃう

da.Remove("1");
da.Remove("2");
MessageBox.Show("da.count=" + da.Count.ToString() + ", db.count=" + db.Count.ToString() + "\r\ndb[1]=" + db["1"]);
引用返信 編集キー/
■75074 / inTopicNo.2)  Re[1]: 複製の作り方について
□投稿者/ Hongliang (287回)-(2015/02/25(Wed) 09:33:08)
dbに新しいインスタンスを代入して良いなら、
Dictionary<string, string> db = new Dictionary<string, string>(da);
とか。
// stringなら問題ないですけど、値のディープコピーが必要ならもうちょっと考える必要がありますね。
引用返信 編集キー/
■75077 / inTopicNo.3)  Re[1]: 複製の作り方について
□投稿者/ WebSurfer (505回)-(2015/02/25(Wed) 10:30:41)
No75073 (よぽん さん) に返信

> db = da; ←これだと db も da も一緒になっちゃう

値型と参照型について調べて、基本的な知識を得ることをお勧めします。今後 C# での
開発を続けるなら、そのあたりがわかってないと、すぐまた同じもしくは同種の問題に
遭遇すると思いますので。
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -