【发布时间】:2009-12-01 10:28:45
【问题描述】:
假设我有以下sn-p:
int? nullableId = GetNonNullableInts().FirstOrDefault();
因为GetNonNullableInts() 返回整数,所以FirstOrDefault 将默认为0。
有没有办法让整数列表上的FirstOrDefault 在列表为空时返回null 值?
【问题讨论】:
假设我有以下sn-p:
int? nullableId = GetNonNullableInts().FirstOrDefault();
因为GetNonNullableInts() 返回整数,所以FirstOrDefault 将默认为0。
有没有办法让整数列表上的FirstOrDefault 在列表为空时返回null 值?
【问题讨论】:
int? nullableId = GetNonNullableInts().Cast<int?>().FirstOrDefault();
【讨论】:
default(T) 的结果。
FirstOrDefault 依赖于来自 IEnumerable<T> 的 T 来知道要返回什么类型,这就是为什么您收到的是 int 而不是 int?。
所以你需要在返回任何值之前将你的项目转换为int?,就像Matt said
【讨论】: