Linq匹配字符串列表

本文关键字:列表 字符串 Linq | 更新日期: 2023-09-27 18:08:17

我想用linq来比较值。

数据选项:A, B, C, D

(原)我的数据:A, B, C

(modify)My data: B, D

my data: A - Delete, B - not change, C - Delete, D - Add

Linq表达式怎么表示呢?

数据类型为List

Linq匹配字符串列表

听起来您可能需要LINQ集合操作:

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