我有两个列表,即list1和list2
假设我的list1有以下元素,
X0
我的list2有以下元素,
"first", "second","third"
所以在这种情况下,字符串“first”和“second”出现在list2中。(但与变量列表中的字符串不完全相同)。
所以在这种情况下,除了“first”和“second”之外我怎么能显示我的结果,list2中只有“third”元素?
我正在使用以下代码
"element first is present here"
"elements are present in second"
先谢谢
答案 0 :(得分:5)
如果搜索子字符串,则无法使用基于集合的方法(如Except
)。所以它不那么有效但仍然可读:
var inOnlyVariableList = list1.Where(s => !list2.Any(s2 => s2.Contains(s))).ToList();
String.Contains
查看给定字符串是否包含在较大的字符串中。
如果您想支持不区分大小写的比较,可以使用:
var inOnlyVariableList = list1
.Where(s => list2.All(s2 => s2.IndexOf(s, StringComparison.InvariantCultureIgnoreCase) == -1))
.ToList();