オブジェクトの 2 つのリストを使用して、文字列キーに基づいて一意の項目の合計セットを保持したいと考えています。衝突は最初のリストから来て、ミスは 2 番目のリストから来ます。別の言い方をすれば、2 番目のリストにない最初のリストのアイテムを無視したいのですが、2 番目のリストに存在するすべてのアイテムと 2 番目のリストの残りのアイテムを保持したいと考えています。
これを行う最善の方法は何ですか?
編集:この問題は、単純な結合よりも微妙です。ユニオンは、2 つのリストの個別の項目を結合します。衝突の場合、外側のリストから項目を取得します。
私の場合、List1 には List2 に存在しないため保持したくないアイテムがいくつかありますが、リスト 2 のすべてのアイテムは保持したいと考えています。
以下を行うためのよりクリーンな/より短い方法はありますか?
var remaining = allowedItems.Except(recentItems)
var allowedRecentItems = recentItems.Intersect(allowedItems)
var result = allowedRecentItems.Concat(remaining);