Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#字典到字典的自动映射_C#_C# 4.0_Dictionary_Mapping - Fatal编程技术网

C#字典到字典的自动映射

C#字典到字典的自动映射,c#,c#-4.0,dictionary,mapping,C#,C# 4.0,Dictionary,Mapping,我需要用一个字典的值修补另一个字典的值,并动态添加新的键。我需要保存新密钥并替换现有密钥,以完成补丁功能。必须存在我无法访问的现有映射。或者我应该写什么映射配置文件 [Test] public void DictionaryMapping() { // Arrange var write = new Dictionary<string, object> { { "Key1", 100 }, { "Key2", true }

我需要用一个字典的值修补另一个字典的值,并动态添加新的键。我需要保存新密钥并替换现有密钥,以完成补丁功能。必须存在我无法访问的现有映射。或者我应该写什么映射配置文件

[Test]
public void DictionaryMapping()
{
    // Arrange
    var write = new Dictionary<string, object>
    {
        { "Key1", 100 },
        { "Key2", true }
    };
            var patch = new Dictionary<string, object>
    {
        { "Key2", false },
        { "Key3", "Additional"}
    };

    // Act
    Mapper.Map(patch, write);

    // Assert
    Assert.That(write["Key1"], Is.EqualTo(100));
    Assert.That(write["Key2"], Is.EqualTo(false));
    Assert.That(write["Key3"], Is.EqualTo("Additional"));
}
[测试]
公共无效字典映射()
{
//安排
var write=新字典
{
{“Key1”,100},
{“Key2”,true}
};
var patch=新字典
{
{“Key2”,false},
{“键3”,“附加”}
};
//表演
Map(补丁,写入);
//断言
断言(write[“Key1”],即.EqualTo(100));
Assert.That(write[“Key2”],Is.EqualTo(false));
断言(写入[“Key3”],即.EqualTo(“附加”);
}

您可以像这样合并词典:

foreach(var keyValue in patch)
    write[keyValue.Key] = keyValue.Value;

它将覆盖现有词典,并为不存在的词典创建新词典。

您可以像这样合并词典:

foreach(var keyValue in patch)
    write[keyValue.Key] = keyValue.Value;
它将覆盖现有的,并为不存在的创建新的