null上的linq连接
单人和单人或默认之间有什么区别 谢谢 单个: 返回序列中满足指定条件的唯一元素,如果存在多个此类元素,则引发异常 单个或默认值: 返回序列的唯一元素,如果序列为空,则返回默认值;如果序列中有多个元素,此方法将引发异常null上的linq连接,linq,Linq,单人和单人或默认之间有什么区别 谢谢 单个: 返回序列中满足指定条件的唯一元素,如果存在多个此类元素,则引发异常 单个或默认值: 返回序列的唯一元素,如果序列为空,则返回默认值;如果序列中有多个元素,此方法将引发异常 因此,如果不希望属性/列接受空值,可以使用SingleOrDefault使用默认值填充该属性/列。区别在于它们如何处理空序列 如果找不到元素,则引发异常 如果未找到元素,则返回值default(T)。对于引用类型和nullables,默认值为null。对于不可为null的值类型,
因此,如果不希望属性/列接受空值,可以使用SingleOrDefault使用默认值填充该属性/列。区别在于它们如何处理空序列
- 如果找不到元素,则引发异常
- 如果未找到元素,则返回值
。对于引用类型和nullables,默认值为null。对于不可为null的值类型,它为0或类似值default(T)
另一个相关方法是,如果序列为空,则允许您指定默认值,而不是仅使用类型的默认值。如果查询的结果不是单一的,Single将引发异常
SingleOrDefault仅在查询有多个结果时才会引发异常。如果没有结果,您将返回默认值(通常为
null
)。如果有多个结果,Single将抛出异常。如果存在多个结果,SingleOrDefault(我假设您的意思是SingleOrDefault而不是SingleifDefault)将返回null。当在Linq联接中使用时,它与SQL中的外部联接类似。SingleOrDefault
返回默认值(T)
,这可能是null
,但是对于例如int
来说,它将是0
@sixlettervariables:Mmmm,耶!我希望我能有一个像“我刚醒来”之类的借口,但现在想不起谢谢呃,我们都为此感到内疚……我只是不知道如果遗漏是“明显的”,那么编辑另一个人的帖子什么时候合适。