2
A
回答
4
区别在于它们如何处理空序列。
Single
如果找不到元素,则会引发异常。如果找不到元素,则返回值default(T)
。对于引用类型和可空值,默认值为null。对于不可为空的值类型,它是0或类似的。
First
和FirstOrDefault
方法也有关系。以下是表格中的所有四个:
method no records multiple records --------------------------------------------- Single exception exception SingleOrDefault default(T) exception First exception first record FirstOrDefault default(T) first record
所有这些方法也有一个重载谓词。
另一个相关的方法是DefaultIfEmpty
,它允许您指定如果序列为空时默认值应该是什么,而不是仅仅使用该类型的默认值。
3
单身:
返回满足指定条件的序列的唯一元素,并且如果多于一个这样的元素存在抛出异常。
单或默认值:
返回序列的唯一元件,或者如果序列是空的默认值;如果序列中有多个元素,则此方法会引发异常。
因此,如果您不希望该属性/列接受NULL,则可以使用SingleOrDefault来使用默认值填充属性/列。
1
单个将抛出一个异常,如果除了查询的单个结果以外的任何东西。
如果您的查询有多个结果,则SingleOrDefault只会抛出异常。如果没有结果,您将返回一个默认值(通常为null
)。
0
如果有多个结果,则单个引发异常。 SingleOrDefault(我假设你的意思SingleOrDefault不SingleifDefault)将返回null,如果有多个结果。
1
当在Linq连接中使用时,它与SQL中的外连接有点类似。
相关问题
- 1. Mysql加入null
- 2. mysql加入和null
- 3. 如何加入null?
- 4. VB.NET LINQ加入
- 5. 左加入Linq?
- 6. MVC3 linq加入
- 7. LINQ内加入
- 8. Linq加入COUNT
- 9. 左加入Linq?
- 10. Linq outer加入
- 11. Linq加入返回的父母,即使当孩子为null
- 12. LINQ到SQL字符串用null值加入
- 13. LinQ:加入值为null的可空属性
- 14. Linq OrderByDescending,null first
- 15. T-SQL加入NULL和NOT NULL记录
- 16. Linq加入Xs,Ys入点
- 17. linq加入群组
- 18. Linq - 加入混乱
- 19. Linq To SQL加入
- 20. 留在LINQ加入
- 21. 左外加入LINQ
- 22. 编译LINQ加入
- 23. Linq with LEFT加入
- 24. Linq加入哪里?
- 25. Linq-加入,MAX(日)
- 26. linq加入单个
- 27. LINQ加入问题
- 28. Linq删除加入
- 29. LINQ加入或OR
- 30. Linq加入 - 重复
`SingleOrDefault`返回可能为'null'的默认(T)`,但例如, `int`将会是'0' – dss539 2011-01-11 20:53:31