C# dotnet 6.0 Dictionary コピーを作る

Pocket

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 は 万能です

ToDictionaryList<string>を Dictionary<string, string>にも変換できます。

var array1 = new List<string>{"1,東京","2,大阪"};
var newDic = array1.ToDictionary(a => a.Split(",")[0], a => a.Split(",")[1]);

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


2022 MJELD TECHNOLOGIES. ALL RIGHTS RESERVED