gpt4 book ai didi

c# - LINQ 查询以查找列表中的项目是否包含在另一个列表中

转载 作者:IT王子 更新时间:2023-10-29 03:51:13 25 4
gpt4 key购买 nike

我有以下代码:

List<string> test1 = new List<string> { "@bob.com", "@tom.com" };
List<string> test2 = new List<string> { "joe@bob.com", "test@sam.com" };

我需要删除 test2 中具有@bob.com 或@tom.com 的任何人。

我试过的是这样的:

bool bContained1 = test1.Contains(test2);
bool bContained2 = test2.Contains(test1);

bContained1 = falsebContained2 = true。我不想遍历每个列表,而是使用 Linq 查询来检索数据。 bContained1 与我在下面创建的 Linq 查询的条件相同:

List<string> test3 = test1.Where(w => !test2.Contains(w)).ToList();

上面的查询适用于完全匹配,但不适用于部分匹配。

我查看了其他查询,但我可以找到与 Linq 的比较。任何想法或任何你能指出的地方都会对我有很大帮助。

最佳答案

var test2NotInTest1 = test2.Where(t2 => test1.Count(t1 => t2.Contains(t1))==0);

根据 Tim 的建议,更快的版本:

var test2NotInTest1 = test2.Where(t2 => !test1.Any(t1 => t2.Contains(t1)));

关于c# - LINQ 查询以查找列表中的项目是否包含在另一个列表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12656582/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com