【问题标题】:How to compare two lists and find the mismatch them in c#?如何比较两个列表并在 c# 中找到不匹配的列表?
【发布时间】:2017-03-03 18:04:16
【问题描述】:

我有两个列表,即 list1 和 list2

假设如果我的 list1 有以下元素,

"first", "second","third"

而我的 list2 有以下元素,

"element first is present here"
"elements are present in second"

所以在这种情况下,字符串“first”和“second”出现在 list2 中。(但与 variablelist 中的不完全相同)。

那么在这种情况下,我怎样才能将“第一”和“第二”除外,并将结果显示为,只有“第三”元素不存在于 list2 中?

我正在使用以下代码

var inOnlyVariableList = list1.Except(list2).ToList();

提前致谢

【问题讨论】:

标签: c# linq list


【解决方案1】:

如果您搜索子字符串,则不能使用基于集合的方法(例如 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();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-26
    相关资源
    最近更新 更多