假设我有以下代码片段:int? nullableId = GetNonNullableInts().FirstOrDefault(); 因为GetNonNullableInts()返回整数,所以FirstOrDefault将默认返回0。 是否有方法可以使对整数列表的FirstOrDefault在列表为空时返回null值?
FirstOrDefault 依赖于 IEnumerable<T> 中的 T 来确定返回的类型,这就是为什么你收到的是 int 而不是 int?。 因此,在返回任何值之前,您需要将项目转换为 int?,就像 Matt 说的那样。
default(T)
的结果。 - Matt Howellssource.DefaultIfEmpty(yourValue).First()
。但是这对于改变类型,比如从int
到int?
并不好用,所以它与你的问题不同。 - Jeppe Stig Nielsen