IEnumerable 上的 FirstOrDefault 具有不可为空的内容
FirstOrDefault on IEnumerable with non-nullable contents
我需要 return IEnumerable
的第一个元素。如果 IEnumerable
为空,我 return 一个特殊值。
此代码可能如下所示:
return myEnumerable.FirstOrDefault() ?? mySpecialValue;
这很好,在 myEnumerable
包含可为 null 的内容之前工作正常。
在这种情况下,我得到的最好结果是:
return myEnumerable.Any() ? myEnumerable.First() : mySpecialValue;
但是这里我有多个枚举 myEnumerable
!
我该怎么做?我更愿意避免必须捕获任何异常。
您可以使用 DefaultIfEmpty
的重载来指定您的后备值。那么你也不需要 FirstOrDefault
但你可以安全地使用 First
:
return myEnumerable.DefaultIfEmpty(mySpecialValue).First();
我需要 return IEnumerable
的第一个元素。如果 IEnumerable
为空,我 return 一个特殊值。
此代码可能如下所示:
return myEnumerable.FirstOrDefault() ?? mySpecialValue;
这很好,在 myEnumerable
包含可为 null 的内容之前工作正常。
在这种情况下,我得到的最好结果是:
return myEnumerable.Any() ? myEnumerable.First() : mySpecialValue;
但是这里我有多个枚举 myEnumerable
!
我该怎么做?我更愿意避免必须捕获任何异常。
您可以使用 DefaultIfEmpty
的重载来指定您的后备值。那么你也不需要 FirstOrDefault
但你可以安全地使用 First
:
return myEnumerable.DefaultIfEmpty(mySpecialValue).First();