我不知道FirstOrDefault
和SingleOrDefault
之间的区别。什么时候应该使用第一个,什么时候应该使用第二个?在Linq中,.FirstOrDefault和.SingleOrDefault之间的区别是什么
7
A
回答
14
FirstOrDefault()
适用于在输入集合中存在零个或多个结果时,如果存在多个结果,则调用返回第一个项目,如果没有,则返回Default。
SingleOrDefault()
适用于在输入集合中预期有零个或一个结果,并且如果只有一个结果存在,则调用返回一个结果,如果没有结果则返回缺省值,如果结果不止一个则返回异常。
7
如果存在多个项目,则SingleOrDefault将抛出“Sequence contains more than one element”异常。
0
firstordefault将采取行的数量,但只会返回它的第一个,如果它是 空它可以处理异常 首先,它会采取行的数量,但只会返回它的第一个,如果它是 空它会抛出异常 的SingleOrDefault这将只需要一个行,但将返回它可以处理异常,如果它是空 单就只需要一个行,但将返回它&不能处理异常
如果您的结果集返回0记录:
SingleOrDefault返回类型的默认值(例如,默认为int是0) FirstOrDefault该类型 如果结果集返回1个记录返回默认值:
的SingleOrDefault返回记录 FirstOrDefault返回记录 如果您的结果集返回多条记录:
SingleOrDefault引发异常 FirstOrDefault返回第一条记录 结论:
如果要在结果集包含许多记录时抛出异常,请使用SingleOrDefault。
如果你总是希望1个记录无论是什么结果集包含,在这里使用FirstOrDefault
相关问题
- 1. 和FirstOrDefault(func)&Where(func).FirstOrDefault()之间的区别?
- 2. LINQ中FirstOrDefault()和FirstOrDefault之间的差异<string>()LINQ
- 3. ++和:haskell之间的区别是什么?
- 4. $(())和expr之间的区别是什么?
- 5. $(...)和`...`之间的区别是什么
- 6. [undefined]和[,]之间的区别是什么?
- 7. Nhibernate如何对待它们有什么区别.FirstOrDefault vs .SingleOrDefault?可能的错误?
- 8. 区别:%% a和%variable%变量之间的区别是什么?
- 9. 在Scala中,乐趣_和乐趣之间的区别是什么
- 10. 在bash脚本中$ {VAR:-...}和$ {VAR:?...}之间的区别是什么
- 11. “;”和“;”之间的区别是什么?和T-SQL中的“GO”?
- 12. MVC和MVVM之间的区别和相似之处是什么?
- 13. TVF/UDF之间的区别是什么
- 14. [EmailPasswordAuthProvider,EmailAuthProvider]之间的区别是什么
- 15. mootools中的.innerHTML和.set('html','')之间的区别是什么?
- 16. R的read.table中''和''之间的区别是什么?
- 17. OOP中的 - >和::之间的区别是什么
- 18. java中的Array和Hashmap之间的主要区别是什么?
- 19. C++中的Pause(),Sleep()和Wait()之间的区别是什么?
- 20. .Net 3.5中的Microsoft.Web.Management和System.DirectoryServices之间的区别是什么?
- 21. Qt:Webkit中的QtScript和Javascript之间的区别是什么
- 22. HTML中的http://和//之间的区别是什么
- 23. 什么是Asynctask和android中的线程之间的区别?
- 24. dpm()和dsm()之间有什么区别?
- 25. @dynamic和@synthesize之间有什么区别?
- 26. vbNullString和“”之间有什么区别吗?
- 27. * zoom和zoom之间有什么区别?
- 28. String.Concat,string.format和+之间有什么区别?
- 29. StaticLayout和DynamicLayout之间有什么区别
- 30. WebServiceBinding.EmitConformanceClaims和WebServiceBinding.ConformanceClaims之间有什么区别?
一些很好的对话: http://stackoverflow.com/questions/1745691/linq-when-to -use-的SingleOrDefault-VS-firstordefault-与过滤准则 – DaveHogan