当我使用 .FirstOrDefault 方法查询数据库时,我如何处理它给我的结果?我特别关心空值,目前我有这样的事情:

if (result == default(TypeOfResult))
{
    handleIt();
}

但我不完全知道这个“默认”是什么,所以我想知道这样做是否更好:
if (result == null)
{
    handleIt();
}

哪一个会起作用?而这个“默认”究竟是什么?

最佳答案

FirstOrDefault 将返回序列中的第一个元素或字面上所讨论类型的默认值。

因此,根据您查询的内容,默认值可能会发生变化。例如,int 的集合的 default 值将为 0。因此,检查 null 是否不起作用。

考虑:

List<int> s = new List<int>();
var x = s.FirstOrDefault();

这里x将等于0
引用类型怎么样?
List<MyCustomClass> s = new List<MyCustomClass>();
var x = s.FirstOrDefault();

这里 x 将是 null
这可能是两种方法中更好的一种:
if (result == default(TypeOfResult))
{
   handleIt();
}

关于c# - 我如何处理 .FirstOrDefault 方法?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12095649/

10-11 15:20