从列表X中删除列表Y的所有内容

本文关键字:列表 删除列 删除 | 更新日期: 2023-09-27 17:50:55

我有两个列表,我的要求是我想创建一个列表,它的数据应该是x的所有值减去y的所有值。

例如

List<string> s = new List<string>();
List<string> y = new List<string>();
List s contain {“a”,”b”,”c”,”d”}
List y contain {“b”,”c”}

我想再创建一个列表

List<string>  z = new List<string>();

其值应为

{“a”,”d”}

从列表X中删除列表Y的所有内容

就用LinQ:

z=s.Except(y).ToList();

以下是针对您的具体问题的参考:如何查找两个列表之间的集合差(LINQ)

一种方法是

z=s.Where(x=>!y.Contains(x)).ToList();

应该可以了

List<string> a = new List<string> { "a", "b", "c", "d" };
List<string> b = new List<string> { "b", "c" };
List<string> c = a.Except(b, StringComparer.OrdinalIgnoreCase).ToList();