首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在C#中将字典内容复制到新字典?

如何在C#中将字典内容复制到新字典?
EN

Stack Overflow用户
提问于 2011-05-11 18:59:18
回答 3查看 63.5K关注 0票数 39

如何将一个Dictionary<string, string>复制到另一个new Dictionary<string, string>,使它们不是同一个object?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-05-11 19:00:33

假设您希望它们是单独的对象,而不是对同一对象的引用将源字典传递到destination's constructor

代码语言:javascript
运行
复制
Dictionary<string, string> d = new Dictionary<string, string>();
Dictionary<string, string> d2 = new Dictionary<string, string>(d);

“因此它们不是同一个对象。”

歧义比比皆是--如果你真的想让它们成为对同一对象的引用:

代码语言:javascript
运行
复制
Dictionary<string, string> d = new Dictionary<string, string>();
Dictionary<string, string> d2 = d;

(在上述内容之后更改dd2都会影响两者)

票数 96
EN

Stack Overflow用户

发布于 2011-05-11 19:04:52

代码语言:javascript
运行
复制
using System;
using System.Collections.Generic;

class Program
{
    static void Main(string[] args)
    {
        Dictionary<string, string> first = new Dictionary<string, string>()
        {
            {"1", "One"},
            {"2", "Two"},
            {"3", "Three"},
            {"4", "Four"},
            {"5", "Five"},
            {"6", "Six"},
            {"7", "Seven"},
            {"8", "Eight"},
            {"9", "Nine"},
            {"0", "Zero"}
        };

        Dictionary<string, string> second = new Dictionary<string, string>();
        foreach (string key in first.Keys)
        {
            second.Add(key, first[key]);
        }

        first["1"] = "newone";
        Console.WriteLine(second["1"]);
    }
}
票数 11
EN

Stack Overflow用户

发布于 2020-08-13 15:45:43

阿迈勒答案的一行版本:

代码语言:javascript
运行
复制
var second = first.Keys.ToDictionary(_ => _, _ => first[_]);
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5963115

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档