说我有以下代码段:
int? nullableId = GetNonNullableInts().FirstOrDefault();
由于GetNonNullableInts()
会返回整数,FirstOrDefault
将默认为0
当列表为空时,有没有办法使整数列表上的FirstOrDefault
返回null
值?
答案 0 :(得分:44)
int? nullableId = GetNonNullableInts().Cast<int?>().FirstOrDefault();
答案 1 :(得分:1)
FirstOrDefault
取决于来自T
的{{1}}来了解要返回的类型,这就是您收到IEnumerable<T>
而不是int
的原因。
因此,您需要在返回任何值之前将项目转换为int?
,就像Matt said