gpt4 book ai didi

c# - LINQ - 不同的语法风格,不同的结果?

转载 作者:太空狗 更新时间:2023-10-29 18:25:32 26 4
gpt4 key购买 nike

有人可以告诉我以下两个 LINQ 语句的区别吗?

var ChkUnique = DB.BusinessFile.FirstOrDefault(c => c.ROCNo == txtBoxID.Text);

var ChkUnique = from c in DB.BusinessFile 
where c.ROCNo == (string)txtBoxID.Text
select c;

ChkUnique != null 返回 false 当找不到匹配项时返回顶部的 true 返回 true 后者我不能弄清楚为什么会这样。

我是 LINQ 的新手,所以我可能会错过一些非常基本的东西,但此刻它让我抓狂。

最佳答案

第二个代码返回一个代表您正在调用的查询的对象;它永远不会为空。虽然一旦枚举,它可能是一个空集合。 (虽然仍然不为空)

您首先调用 FirstOrDefault,它强制将单个结果放入单个变量,如果没有结果则返回 null。如果您执行 Where 而不是 FirstOrDefault,那么两次您都会得到相同的结果。

关于c# - LINQ - 不同的语法风格,不同的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8515550/

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