C#中的LINQ合并两个词典 [英] C# Linq merge two dictionaries

查看:80
本文介绍了C#中的LINQ合并两个词典的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何使以下方法更多的功能,LINQ风格

 公共静态字典< T,T> MergeDict< T,T>(词典< T,T> A,字典< T,T> B)
{
变种E =新词典< T,T>();

a.Concat(B).ToList()的ForEach(对= GT;
{$ B $是[pair.Key] = pair.Value;
}) ;

返回电子邮件;
}


解决方案

要继续重复的丢弃方式,同比增长只是小组,并采取组中的获胜项目(如最后一个)。

  first.Concat(二) 
.GroupBy(KVP = GT; kvp.Key,KVP = GT; kvp.Value)
.ToDictionary(G => g.Key,G => g.Last());


How to make the following method more functional-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;
    }

解决方案

To continue your duplicate discarding ways, just group up and take a winning item in the group (such as the Last one).

first.Concat(second)
  .GroupBy(kvp => kvp.Key, kvp => kvp.Value)
  .ToDictionary(g => g.Key, g => g.Last());

这篇关于C#中的LINQ合并两个词典的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆