Emi*_*nem 6 c# compare nullable equality
在我的Linq查询中,我有以下内容:
.Where(x => x.dtt_ref_no == dtt_ref)
Run Code Online (Sandbox Code Playgroud)
其中x.dtt_ref_no是可以为null的int,
而dtt_ref是int类型.
比较这两个值的正确方法是什么?
你的代码的工作,因为它是,如果你使用==上int?和int将返回false如果可空不包含值.所以它和你写的一样:
.Where(x => x.dtt_ref_no.HasValue && x.dtt_ref_no.Value == dtt_ref)
Run Code Online (Sandbox Code Playgroud)
这是相同的行为,Nullable<T>.Equals因为int将在比较时将其转换为int? 隐式.