linqを使って値を比較したいと思います。
データオプション:A、B、C、D
(オリジナル)マイデータ : A, B, C
(修正)マイデータ : B, D
my data : A - 削除、B - 変更なし、C - 削除、D - 追加
Linq 式はどのように表現するのですか?
データ型はリスト
LINQ set operationsが必要なようです:
var added = modified.Except(original);
var deleted = original.Except(modified);
var unchanged = modified.Intersect(original);
もちろん、それはあなたが注文を気にしないと仮定しています。これらを見つけるためのより効率的な方法があることは間違いありませんが、実際にパフォーマンスを心配する必要がない限り、これを出発点として使用します。
私はあなたがこのようなものを探していると思います:
var option = new[] {"A", "B", "C", "D"};
var original = new[] {"A", "B", "C"};
var modify = new[] {"B", "D"};
var deleted = original.Except(modify); // A, C
var added = modify.Except(original); // D
var not_changed = modify.Intersect(original); // B