[C#]合并两个字典对 c# 不纯 concat

标签: Linq .Net C#
发布时间: 2017/2/27 3:50:09
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我有两本词典。

Dictionary<string, string> testDict = new Dictionary<string, string>();
            testDict.Add("Name", "John");
            testDict.Add("City", "NY");

Dictionary<string, string> DictA = new Dictionary<string, string>();
            DictA.Add("Name", "Sarah");
            DictA.Add("State", "ON");

我希望得到一本字典,这样的 testDict 键存在和格言中存在这些键的值。

如此示例合并的字典应该如下所示︰

Dictionary<string, string> DictMerged = new Dictionary<string, string>();
                DictMerged.Add("Name", "Sarah");
                DictMerged.Add("City", "NY");

我希望我已经能够解释我的要求。

我试过了。。

testDict.Concat(DictA)
  .GroupBy(kvp => kvp.Key, kvp => kvp.Value)
  .ToDictionary(g => g.Key, g => g.Last());

但这给了我意见 '国' 我不想。

任何帮助表示衷心感谢

谢谢你

解决方法 1:

我认为你在找这个︰

var result = 
    testDict.ToDictionary(
             i => i.Key, 
             i => DictA.ContainsKey(i.Key) ? DictA[i.Key] : i.Value);

// result:
// {"Name", "Sarah"}
// {"City", "NY"}
官方微信
官方QQ群
31647020