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