私はLinqを把握しようとしていますが、次の問題があります:
カスタム オブジェクトのリストがあり、オブジェクトごとにいくつかのプロパティがあります。次に、ID プロパティを除いてプロパティ値が異なる、同じタイプの別のリストがあります。tempList
ここで、2 番目のリスト ( ) にあり、最初のリスト ( ) にはないオブジェクトを追加したいと考えていますOrderList
。その後、 にOrderList
ないオブジェクトを削除しようとしましたtempList
。
これは少し不必要に思えるかもしれませんが、その理由は、OrderList
これらの ID が で見つかった場合tempList
にOrderList
プロパティの値を保持する必要があるためですtempList
。
コード スニペットは次のようになります (OrderList
オブジェクトtempList
は既に入力されており、識別子として使用するプロパティIDです)。
// Add new orders from account to current object
OrderList.AddRange(tempList.Where(p => !OrderList.Any(p2 => p2.ID == p.ID)));
// Remove missing orders from our OrderList
OrderList.RemoveAll(p => !tempList.Any(p2 => p2.ID == p.ID));
OrderList のオブジェクトのプロパティが 2 つの行のそれぞれの後にリセットされるため、私が間違っていることがあります...
たぶん、新鮮な目で私が間違っていることを見ることができますか?