假设我有以下代码片段:
int? nullableId = GetNonNullableInts().FirstOrDefault();
因为GetNonNullableInts()返回整数,所以FirstOrDefault将默认为0。当整数列表为空时,是否有办法使该列表上的FirstOrDefault返回一个null值?
GetNonNullableInts()
FirstOrDefault
0
null
91zkwejq1#
int? nullableId = GetNonNullableInts().Cast<int?>().FirstOrDefault();
lrpiutwd2#
FirstOrDefault依赖于来自IEnumerable<T>的T来知道返回什么类型,这就是为什么您接收的是int而不是int?。因此,在返回任何值之前,您需要将项目强制转换为int?,就像Matt所说的那样
IEnumerable<T>
T
int
int?
2条答案
按热度按时间91zkwejq1#
lrpiutwd2#
FirstOrDefault
依赖于来自IEnumerable<T>
的T
来知道返回什么类型,这就是为什么您接收的是int
而不是int?
。因此,在返回任何值之前,您需要将项目强制转换为
int?
,就像Matt所说的那样