我有如下类
public class Application
{
public int Id { get; set; }
public int Version { get; set; }
(...)
}
我有以下IEnumerable<Application>
:
IEnumerable<Application> applications1 = new List<Application>
{
new Application {Id = 1, Version = 1},
new Application {Id = 2, Version = 1},
new Application {Id = 3, Version = 3}
};
IEnumerable<Application> applications2 = new List<Application>
{
new Application {Id = 1, Version = 2},
new Application {Id = 3, Version = 2}
new Application {Id = 4, Version = 1}
};
如何使用 LINQ 将它们合并为一个单一的 IEnumerable<Application>,同时确保如果两个 Applications 具有相同的 Id,则只添加具有最高 Version 的一个到新的 IEnumerable<Application> 中,最终生成的 IEnumerable 与以下内容等效:
IEnumerable<Application> final = new List<Application>
{
new Application {Id = 1, Version = 2},
new Application {Id = 2, Version = 1},
new Application {Id = 3, Version = 3},
new Application {Id = 4, Version = 1}
}
版本
没有任何影响。因此,哪个版本会存活下来是完全随机的。 - MakePeaceGreatAgain