Dictionary<string, T>
基本的に Clone() を作成したい汎用辞書があります。何か提案はありますか。
ベストアンサー1
(注: クローン バージョンは潜在的に便利ですが、単純な浅いコピーの場合は、他の投稿で説明したコンストラクターの方が適しています。)
コピーの深さはどのくらいにしたいですか? また、どのバージョンの .NET を使用していますか? .NET 3.5 を使用している場合は、キーと要素セレクターの両方を指定して ToDictionary に LINQ を呼び出すのが最も簡単な方法だと思います。
たとえば、値が浅いクローンであっても構わない場合:
var newDictionary = oldDictionary.ToDictionary(entry => entry.Key,
entry => entry.Value);
すでに T に ICloneable を実装するように制約している場合:
var newDictionary = oldDictionary.ToDictionary(entry => entry.Key,
entry => (T) entry.Value.Clone());
(これらはテストされていませんが、動作するはずです。)