У меня есть два словаря в C# 6.0, и я бы хотел объединить их в умном стиле.Объединить два словаря <string, string> асимметричным образом
Возьмите первый словарь foo
как:
var foo = new Dictionary<string, string>
{
{"a", "10"},
{"b", "20"},
{"c", "30"},
};
И второй словарь bar
как:
var bar = new Dictionary<string, string>
{
{"a", "333"},
{"e", "444"},
{"f", "555"},
};
я хотел бы объединить их в одном словаре с этой логикой:
- Если ключ в
foo
, но нет т вbar
игнорировать его в новом словаре - Если ключ в
bar
но не вfoo
, принять его в новом словаре - если ключ находится в как
foo
иbar
, принимает значение изfoo
в новом словаре
Вот мой ожидаемый результат:
var result = new Dictionary<string, string>
{
{"a", "10"}, //this comes from foo
{"e", "444"}, //this comes from bar
{"f", "555"}, //this comes from bar
};
Есть ли разумный способ справиться с этой проблемой без forloop (выражения LINQ в порядке)?
Честно это действительно непостижимо, почему некоторые люди боятся петли *, а также, почему другие люди страх LINQ * –