C# Find()和First()與FirstOrDefault()

1. Find方法只能在List<T>上使用,而後者能更廣泛應用在IEnemerable<T>上。

Find最終是建立在Array的查找之上,而在IEnemerable上的FirstOrDefault是使用foreach查找的。因此,Find速度會比FirstOrDefault快很多,據測試可能會快一倍以上。

2. First:取序列中滿足條件的第一個元素,如果沒有元素滿足條件,則拋出異常 
3. FirstOrDefault:取序列中滿足條件的第一個元素,如果沒有元素滿足條件,則返回默認值(對於可以爲null的對象,默認值爲null,對於不能爲null的對象,如int,默認值爲0) 
First、FirstOrDefault的區別在於:當沒有元素滿足條件時,一個拋出異常,一個返回默認值。 
因此,在使用時,一定要注意這個區別: 
1、當確信序列中一定有滿足條件的元素時,使用First方法,取到元素後,無需判斷是否爲null 
2、當序列中可能找不到滿足條件的元素時,使用FirstOrDefault方法,然後,一定要對返回值是否爲null,進行不同的處理

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章