gpt4 book ai didi

c# - 与 NULL 比较时的 LINQ 和延迟执行

转载 作者:太空宇宙 更新时间:2023-11-03 10:26:00 24 4
gpt4 key购买 nike

我正在对数据库访问进行一些优化,并且一直对延迟执行感到疑惑。我已经了解到 SomeQueriable.Count()SomeQueriable.ToList().CountSomeQueriable.ToArray().Length 更有效>,因为它使用 native DB COUNT 方法。

但是搜索结果本身呢?当我想将查询结果与 null 进行比较时,SomeQueriable == nullSomeQueriable.ToList() == null 之间有区别吗?

此外,使用 SomeQueriable.Count() 是安全的,还是我必须始终检查 null?换句话说,是

if (SomeQueriable == null || SomeQueriable.Count() == 0)

一样
if (SomeQueriable.Count() == 0)

或者当没有找到记录时,后者会导致异常吗?

最佳答案

SomeQueriable 表示一个表达式树,直到您调用 ToList。当您评估 SomeQueriable == null 时,您正在检查表达式树是否为 null。当您评估 SomeQueriable.ToList() == null 时,您正在检查查询的结果是否为 null ,我认为它永远不会是- 我认为它返回一个更符合惯用语的空集合。

调用 SomeQueriable.Count() 是 null 安全的,只要 SomeQueriable 已明确分配。就像任何其他变量一样,如果它有可能为 null,请添加 null 检查或使用 null-conditional operator在 C# 6 中。

关于c# - 与 NULL 比较时的 LINQ 和延迟执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31586095/

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