在空IEnumerable 上为FirstOrDefault()返回null?
假设我有以下代码段:
int? nullableId = GetNonNullableInts().FirstOrDefault();
因为GetNonNullableInts()
返回整数,所以FirstOrDefault
将默认为0
。
当列表为空时,有没有办法使整数列表上的FirstOrDefault
返回null
值?
int? nullableId = GetNonNullableInts().Cast().FirstOrDefault();
FirstOrDefault
依赖于来自IEnumerable
来知道返回什么类型,这就是为什么你接收int
而不是int?
。
所以你需要将你的项目转换为int?
在返回任何价值之前,就像马特所说的那样