gpt4 book ai didi

c# - 如何复制词典列表

转载 作者:太空宇宙 更新时间:2023-11-03 18:40:59 27 4
gpt4 key购买 nike

我有两本字典。当我更改字典 1 中的值时,相同的更改会出现在字典 2 中。如何只更改字典 1 中的值,而不同时更改字典 2 中的值?

   List<Dictionary<string, string>> ld1 = new List<Dictionary<string, string>>();
Dictionary<string, string> d1 = new Dictionary<string,string>();

d1.Add("Text", "Value1");
d1.Add("Format", "Value2");
ld1.Add(d1);

List<Dictionary<string, string>> ld2 = new List<Dictionary<string, string>>(ld1);
// ld2 = ld1

ld1[0]["Text"] = "Eulav"; // should: change only in the first dictionary
// actually: changes in the second dictionary as well

Console.WriteLine(ld1[0]["Text"]);
Console.WriteLine(ld2[0]["Text"]);

输出

Eulav
Eulav

最佳答案

您只创建一个新列表,但该列表中的项目引用相同的对象(字典),因此您还需要为每个项目创建一个副本:

var ld2 = new List<Dictionary<string, string>>();

foreach (var dict in ld1)
{
ld2.Add(new Dictionary<string, string>(dict));
}

关于c# - 如何复制词典列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8949319/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com