gpt4 book ai didi

c# - 如果 Linq 结果为空

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

如果我有一个看起来像这样的 linq 查询,我如何检查查询是否没有找到结果?

var LinqResult = 
from a in Db.Table
where a.Value0 == "ninja"
group a by a.Value1 into b
select new { Table = b};

if(LinqResult.Count() == 0) //?
{

}

最佳答案

您应该尽量避免使用 Count() 方法来检查序列是否为空。 Phil Haack 有 an excellent article on his blog他在其中讨论了这种反模式。

Count()实际上必须枚举序列的所有元素 - 如果序列基于多个 LINQ 操作(或来自数据库),这可能会很昂贵。

你应该使用 Any()相反,扩展方法 - 它仅尝试查看列表中是否至少有一个元素,但不会枚举整个序列。

if( !LinqResult.Any() )
{
// your code
}

我个人也认为使用Any()而不是 Count()更好地表达您的意图,并且将来更容易可靠地重构或更改。

顺便说一句,如果您真正想要的是序列的第一个(或唯一)成员,您应该使用 First()Single()运算符代替。

关于c# - 如果 Linq 结果为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3259895/

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