2013-08-26 7 views
0

Мне нужно исправить значения одного словаря, добавив новые ключи на лету. Мне нужно сохранить новые ключи и заменить существующие, чтобы завершить функцию патча. Должно быть существующее сопоставление, к которому я не могу получить доступ. Или какой профиль сопоставления мне следует писать?C# Dictionary to Dictionary AutoMapping

[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")); 
} 

ответ

4

Вы можете объединить словари так:

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

Это будет перезаписывать существующие и создавать новые для несуществующего.