我想使用linq比较值。
数据选项:A、B、C、D
(原创)我的数据:A、B、C
(修改)我的数据:B,D
我的数据:A - 删除,B - 不变,C - 删除,D - 添加
Linq表达式怎么表达呢?
数据类型为列表
听起来您可能想要LINQ 集操作:
var added = modified.Except(original);
var deleted = original.Except(modified);
var unchanged = modified.Intersect(original);
当然,这是假设您不关心ordering。毫无疑问,有更有效的方法可以找到这些——但除非你真的需要担心性能,否则我会以此为起点。
我想你正在寻找这样的东西:
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