Microsoft C# .NET6.0で、 Dictionary 変数のコピーを作る方法。
イコールで コピーした場合、 実態は コピーされません。
newで Dictionary 変数のコピーを作る
using System; using System.Collections.Generic; var dir1 = new Dictionary<string, string> { { "key1", "マクド"} }; var dir2 = new Dictionary<string, string>(dir1); //new でコピーする dir1["key1"] = "マック";//最初に作ったDictionaryのValueを変更する Console.WriteLine(dir1["key1"]); Console.WriteLine(dir2["key1"]); //dir1とdir2の中身の違いを確認
Enumerable.ToDictionaryを使った Dictionaryのコピー
using System; using System.Collections.Generic; var dir1 = new Dictionary<string, string> { { "key1", "マクド"} }; var dir2 = dir1.ToDictionary(a => a.Key, a => a.Value); dir1["key1"] = "マック";//最初に作ったDictionaryのValueを変更する
ToDictionary は 万能です
ToDictionaryは List<string>を Dictionary<string, string>にも変換できます。
var array1 = new List<string>{"1,東京","2,大阪"}; var newDic = array1.ToDictionary(a => a.Split(",")[0], a => a.Split(",")[1]);