如何比较可空整型和整型
本文关键字:整型 比较 何比较 | 更新日期: 2023-09-27 18:18:31
在我的Linq查询中,我有以下内容:
.Where(x => x.dtt_ref_no == dtt_ref)
, x。dtt_ref_no是一个可为空的int
和 dtt_ref 的类型是 int 。
比较这两个值的正确方法是什么?
您的代码按原样工作,如果您在int?
和int
上使用==
,如果可空值不包含值,它将返回false
。这就像你写:
.Where(x => x.dtt_ref_no.HasValue && x.dtt_ref_no.Value == dtt_ref)
它的行为与Nullable<T>.Equals
相同,因为int
将在比较时隐式转换为int?
。
您应该使用Equals
重载:
.Where(x => x.dtt_ref_no.Equals(dtt_ref))