所以我有一个struct
s 的集合(它实际上是一个 WCF 数据合同,但我假设这在这里没有影响)。
List<OptionalExtra> OptionalExtras;
OptionalExtra
是一个struct
。
public partial struct OptionalExtra
现在我正在运行以下语句:
OptionalExtra multiOptExtra = OptionalExtras.Where(w => w.Code == optExtra.Code).FirstOrDefault();
if (multiOptExtra != null)
{
}
现在这不会编译:
运算符 != 不能应用于 OptionalExtra 类型的操作数和
'<null>'
经过一番谷歌搜索后,我意识到这是OptionalExtra
因为struct
. 除非定义为可空类型,否则我认为它不可为空?
所以我的问题是,如果我的where
语句没有返回任何结果,那么FirstOrDefault
调用的结果是什么?它会抛出异常吗?
顺便说一句,这永远不会发生,但安全总比后悔好。