加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 使用LINQ来合并对象列表

发布时间:2020-12-15 17:43:14 所属栏目:百科 来源:网络整理
导读:我有两个对象列表,使用 Linq我想合并它们,但是两个列表中包含具有相同键的对象,我只想要具有最大LastUpdated值的对象. 我以为我可以以某种方式通过键a和max(LastUpdated)得到一个列表分组,然后加入到加入键和LastUpdated的列表中,但必须有一个更有效的方式…
我有两个对象列表,使用 Linq我想合并它们,但是两个列表中包含具有相同键的对象,我只想要具有最大LastUpdated值的对象.

我以为我可以以某种方式通过键a和max(LastUpdated)得到一个列表分组,然后加入到加入键和LastUpdated的列表中,但必须有一个更有效的方式…

List<MyObject> lstListA = new List<MyObject>;
List<MyObject> lstListB = new List<MyObject>;

public class MyObject
{
    public string Key {get;set;}
    public string Value {get;set;}
    public DateTime LastUpdated {get;set;}
}

解决方法

一个选项,从 MoreLINQ使用DistinctBy:
var query = lstListA.Concat(lstListB)
                    .OrderByDescending(x => x.LastUpdated)
                    .DistinctBy(x => x.Key);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读