gpt4 book ai didi

c# - 如何使用 Linq 检查字符串列表是否包含列表中的任何字符串

转载 作者:可可西里 更新时间:2023-11-01 07:54:46 27 4
gpt4 key购买 nike

我正在构造一个 linq 查询,它将检查数据库中的字符串是否包含字符串列表中的任何字符串。

类似的东西。

query = query.Where(x => x.tags
.Contains(--any of the items in my list of strings--));

我还想知道列表中有多少项是匹配的。

如有任何帮助,我们将不胜感激。

更新:我应该提到标签是一个字符串而不是列表。在查询实际运行之前,我添加了一些与标签无关的位置。这是针对 Entity Framework 运行的。

最佳答案

编辑:这个答案假设 tags 是一个字符串集合...

听起来你可能想要:

var list = new List<string> { ... };
var query = query.Where(x => x.tags.Any(tag => list.Contains(tag));

或者:

var list = new List<string> { ... };
var query = query.Where(x => x.tags.Intersect(list).Any());

(如果这是使用 LINQ to SQL 或 EF,您可能会发现一个有效而另一个无效。仅在 LINQ to Objects 中,两者都应该有效。)

要获得计数,您需要类似的东西:

var result = query.Select(x => new { x, count = x.tags.Count(tag => list.Contains(tag)) })
.Where(pair => pair.count != 0);

然后result的每个元素是一对x(该项目)和count(匹配标签的数量)。

关于c# - 如何使用 Linq 检查字符串列表是否包含列表中的任何字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23764317/

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