我不知道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. FirstOrDefault()和FirstOrDefault之間的區別<MyClass>()?
- 3. LINQ中FirstOrDefault()和FirstOrDefault之間的差異<string>()LINQ
- 4. $(())和expr之間的區別是什麼?
- 5. $和$ .fn之間的區別是什麼?
- 6. ++和:haskell之間的區別是什麼?
- 7. $(「」)和$ .find(「」)之間的區別是什麼?
- 8. 「\」和「\。」之間的區別是什麼?
- 9. 「$ | ++」和「$ | = 1」之間的區別是什麼
- 10. $(...)和`...`之間的區別是什麼
- 11. .equals()和==之間的區別是什麼?
- 12. [undefined]和[,]之間的區別是什麼?
- 13. Single和FirstOrDefault有什麼區別?
- 14. Nhibernate如何對待它們有什麼區別.FirstOrDefault vs .SingleOrDefault?可能的錯誤?
- 15. 什麼之間的區別〜^和Git中
- 16. LINQ to SQL和LINQ to Entities之間有什麼區別?
- 17. 區別:%% a和%variable%變量之間的區別是什麼?
- 18. 什麼是爲PrintWriter和DataOutputStream之間的區別是什麼?
- 19. 在Android中,MotionEvent中getAction()和getActionMasked()之間的區別是什麼?
- 20. 關於FirstOrDefault或SingleOrDefault
- 21. ||之間有什麼區別?和|在R?
- 22. 在地鐵中,FolderInformation和StorageFolder之間的區別是什麼
- 23. 在bash腳本中$ {VAR:-...}和$ {VAR:?...}之間的區別是什麼
- 24. 在Python中,通過和返回之間的區別是什麼
- 25. ConditionPathExists =和ConditionPathExists =之間的區別是什麼?在systemd中?
- 26. 在Scala中,樂趣_和樂趣之間的區別是什麼
- 27. 在Ruby中,String()和#to_s之間的區別是什麼
- 28. 在Python中,list1 = [] list2 = []和list1 = list2 = []之間的區別是什麼?
- 29. 「;」和「;」之間的區別是什麼?和T-SQL中的「GO」?
- 30. 「。」和「。」之間的區別是什麼?和[System.ENVIRONMENT] :: PowerShell中的CurrentDirectory?
一些很好的對話: http://stackoverflow.com/questions/1745691/linq-when-to -use-的SingleOrDefault-VS-firstordefault-與過濾準則 – DaveHogan