使用我的两个对象列表,我想保留基于字符串键的唯一项的总集合,其中任何冲突都来自第一个列表,任何未命中都来自第二个列表。换句话说,我想忽略第一个列表中不在第二个列表中的任何项目,但我想保留第二个列表中确实存在的所有项目以及第二个列表中的任何剩余项目。
最好的方法是什么?
编辑:这个问题比简单的联合更微妙。联合将连接两个列表中的不同项目。在发生冲突的情况下,它会从外部列表中获取项目。
就我而言,我不想保留 List1 中的一些项目,因为它们不存在于 List2 中,而我确实想保留列表 2 中的所有项目。
是否有更清洁/更短的方法来执行以下操作?
var remaining = allowedItems.Except(recentItems)
var allowedRecentItems = recentItems.Intersect(allowedItems)
var result = allowedRecentItems.Concat(remaining);