次のようなリストが 2 つあるとします。
ID | IsChipCollected | IsShirtCollected | IsPackCollected
A 0 1 0 1
1 0 1 0
2 0 0 1
B 0 0 1 0
1 0 0 1
2 1 1 1
基本的に、2 つのリストを比較してマージする必要があります。B で特定のフラグが true に設定されている場合は、A の代わりにそれを選択する必要があります。
単一の列でこれを達成する方法は知っていますが、2列以上のシナリオで頭を悩ませています
var result = A.Concat(B)
.GroupBy(x => x.Id)
.Select(g => g.OrderByDescending(x => x.IsShirtCollected).First())
これについて何か進展があれば、コードサンプルを更新します (現在まだハッキング中です:P)
期待される結果
ID | IsChipCollected | IsShirtCollected | IsPackCollected
0 1 1 1
1 0 1 1
2 1 1 1