如何将可空int与int进行比较

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_refint类型.
比较这两个值的正确方法是什么?

Tim*_*ter 7

你的代码的工作,因为它是,如果你使用==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? 隐式.