C# 如何从字典中复制每个键/值对<;字符串,字符串>;到词典?

C# 如何从字典中复制每个键/值对<;字符串,字符串>;到词典?,c#,dictionary,collections,C#,Dictionary,Collections,我正努力做到以下几点: exception.Data = LoggedProperties; 但是它不被接受,因为异常类上的Data属性有一个私有setter 所以我想继续在第一本或第二本字典中使用ForAll。但是这个类没有类似的语法 而且这两个Dictionary.Keys都不允许这样做 它们也没有AddRange 那么,如何用简洁的语法从一本词典复制到另一本词典呢 也就是说,使用Linq或lambda表达式?或者将异常包装到另一个表达式中-(因为它是虚拟属性,所以可以覆盖它): 或: 你

我正努力做到以下几点:

exception.Data = LoggedProperties;
但是它不被接受,因为异常类上的
Data
属性有一个私有setter

所以我想继续在第一本或第二本字典中使用
ForAll
。但是这个类没有类似的语法

而且这两个
Dictionary.Keys
都不允许这样做

它们也没有
AddRange

那么,如何用简洁的语法从一本词典复制到另一本词典呢


也就是说,使用Linq或lambda表达式?

或者将异常包装到另一个表达式中-(因为它是
虚拟属性,所以可以覆盖它):

或:


你到底想达到什么目的?
字典
将实现该接口…字典已经是一个IDictionary@mrlucmorin当前位置是的,但我仍然需要这样做。原因很简单。例外。数据有一个私有setter。所以我不能执行异常。数据=LoggedProperties@Sam,你想做什么?界面形式的东西对你有什么帮助?创建你自己的异常来保存这些细节。你问什么还不是很清楚?您正在尝试分配给私有财产吗?你不能,这是
private
的重点。或者您正在尝试将所有键值映射从一个字典放到另一个字典中?是哪一个?好主意!但是您也可以帮助我将所有键值映射从一个字典放到另一个字典中,而不使用for和foreach。我的意思是我想在一行中完成。就像使用ForAll构造一样。你想让这个副本做什么?如果dictionary 1中有6个值,dictionary 2中有9个值,那么dictionary是否会再获得6个值并总共有15个值,或者dictionary 2是否会被6个值完全覆盖?目标dictionary将为空。所以我想做的和:foreach(LoggedProperties中的var p){exception.Data.Add(p.Key,p.Value)}
public class ExceptionTest : Exception
{
    private Dictionary<string, string> InternalData { get; set; }
    public ExceptionTest(Dictionary<string, string> data)
    {
        InternalData = data;
    }

    public override Dictionary<string, string> Data 
    {
        get 
        {
            return InternalData;
        }
    }
}
var newDictionary = new Dictionary<string, string>(originalDictionary);
var newDictionary = originalDictionary.ToDictionary(kvp => kvp.Key, kvp => kvp.Value);