c# List集合中First、Last、Single方法使用


操作符

如果源序列是空的

源序列只包含一個元素

源序列包含多個元素

First

拋異常

返回該元素

返回第一個元素

FirstOrDefault

返回default(TSource)

返回該元素

返回第一個元素

Last

拋異常

返回該元素

返回最后一個元素

LastOrDefault

返回default(TSource)

返回該元素

返回最后一個元素

Single

拋異常

返回該元素

拋異常

SingleOrDefault

返回default(TSource)

返回該元素

拋異常

 

很明顯,如果輸入序列只有一個元素的話,這幾個操作符的執行結果是非常一致的:) 類似的,如果輸入的序列是空的的話,那么沒有“OrDefault”的操作符會拋異常(InvalidOperationException),而帶有“OrDefault”的操作符則會返回元素類型的默認值(引用類型的默認值為null,int的默認值為0,等等)。

如果(可能是被過濾過的)輸入序列含有多個元素的話,那這些操作符的執行結果的差異是很大的,First和Last的結果是顧名思義的,而Single拋出異常。值得注意的是,SingleOrDefault也會拋出異常,因為它要做的事又不是像這樣:如果輸入序列只有一個元素的話,返回該元素,否則的話返回默認值。如果你需要能夠處理多元素序列的操作符的話,用First或Last。如果你需要處理可能為空的序列的話,使用FirstOrDefault或LastOrDefault。請注意,如果使用帶有“OrDefault”的操作符的話,那么一個空的序列和一個僅包含默認值的序列的執行結果會是完全一樣的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM