2011-10-05 64 views

回答

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

相關問題