在空IEnumerable 上为FirstOrDefault()返回null?

假设我有以下代码段:

int? nullableId = GetNonNullableInts().FirstOrDefault(); 

因为GetNonNullableInts()返回整数,所以FirstOrDefault将默认为0
当列表为空时,有没有办法使整数列表上的FirstOrDefault返回null值?

 int? nullableId = GetNonNullableInts().Cast().FirstOrDefault(); 

FirstOrDefault依赖于来自IEnumerable来知道返回什么类型,这就是为什么你接收int而不是int?

所以你需要将你的项目转换为int? 在返回任何价值之前,就像马特所说的那样