我有两个对象列表,我想使用 Linq 合并它们,但是如果这两个列表包含具有相同键的对象,我只想要具有最大 LastUpdated 值的对象。
我想我可以通过 max(LastUpdated) 以某种方式获得一个按键 a 分组的列表,然后返回到按键和 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);
关于c# - 使用 LINQ 合并对象列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2298207/