1. 程式人生 > >c# List集合中First、Last、Single方法使用

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

如果 nbsp def 也會 只有一個 rst 集合 異常 方法

操作符

如果源序列是空的

源序列只包含一個元素

源序列包含多個元素

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”的操作符的話,那麽一個空的序列和一個僅包含默認值的序列的執行結果會是完全一樣的。

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