C#Linq合并了两个词典

mic*_*524 6 c# linq merge functional-programming

如何使以下方法更具功能性 - linq-style?

    public static Dictionary<T, T> MergeDict<T, T>(Dictionary<T, T> a, Dictionary<T, T> b)
    {
        var e = new Dictionary<T, T>();

        a.Concat(b).ToList().ForEach(pair =>
        {
            e[pair.Key] = pair.Value;
        });

        return e;
    }
Run Code Online (Sandbox Code Playgroud)

Amy*_*y B 11

要继续您的重复丢弃方式,只需分组并获取组中的获胜项目(例如最后一项).

first.Concat(second)
  .GroupBy(kvp => kvp.Key, kvp => kvp.Value)
  .ToDictionary(g => g.Key, g => g.Last());
Run Code Online (Sandbox Code Playgroud)