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. Linq Left加入权利为null
- 2. 防止LINQ to Entity加入NULL检查
- 3. MySQL加入null?
- 4. 加入null
- 5. Mysql加入null
- 6. VB.NET LINQ加入
- 7. Linq outer加入
- 8. MVC3 linq加入
- 9. LINQ加入
- 10. 左加入Linq?
- 11. LINQ multible加入
- 12. 左加入Linq?
- 13. LINQ内加入
- 14. LINQ加入VB.NET
- 15. Linq加入COUNT
- 16. Linq加入c#
- 17. LINQ到SQL字符串用null值加入
- 18. LinQ:加入值为null的可空属性
- 19. Linq加入返回的父母,即使当孩子为null
- 20. mysql加入和null
- 21. 如何加入null?
- 22. null Linq查询
- 23. Linq OrderByDescending,null first
- 24. LINQ返回NULL
- 25. 当NOT NULL时Linq to SQL“无法插入值NULL”!
- 26. T-SQL加入NULL和NOT NULL记录
- 27. Linq加入计数
- 28. linq加入单个
- 29. 左外加入LINQ
- 30. Linq加入问题
`SingleOrDefault`返回可能为'null'的默认(T)`,但例如, `int`将会是'0' – dss539 2011-01-11 20:53:31