gpt4 book ai didi

c# - 在 Linq 中,如何在不使用 Count(predicate) 的情况下查找集合是否包含元素?

转载 作者:行者123 更新时间:2023-11-30 18:57:53 25 4
gpt4 key购买 nike

由于 IEnumerable.Contains() 方法不接受谓词作为参数,大多数人使用以下代码来检查是否存在与条件匹配的内容:

// ProductId is unique.
if (Products.Count(c => c.ProductId = 1234) == 1)
{
// Products list contains product 1234.
}

此代码强制遍历每个产品 并检查它是否匹配。确实没有必要这样做。

在查看 Linq-to-SQL 生成的 SQL 代码时,存在同样的问题。 select count(*) ... where ProductId = @p0 语句被发送,而不是 if exists

如何通过 Linq 查找集合是否包含与条件匹配的项目,而不必遍历集合中的每个元素并计算匹配项的数量?

最佳答案

你可以试试

if (Products.Any(c => c.ProductId = 1234))
{
//do stuff
}

不确定是否使用 if 存在,但您可以尝试查看发送的内容。

关于c# - 在 Linq 中,如何在不使用 Count(predicate) 的情况下查找集合是否包含元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3279666/

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