Find方法和FirstOrDefault方法效果相同,都是返回滿足條件的第一個元素,如果沒有該元素,則返回null。
那么這兩個擴展方法有什么不同?
1)Find方法是.netFramework2.0的,而FirstOrDefault是3.5的。
2)Find方法只能在List<T>上使用,而后者能更廣泛應用在IEnemerable<T>上。
3)依據http://stackoverflow.com/questions/14032709/performance-of-find-vs-firstordefault一文,
Find最終是建立在Array的查找之上,而在IEnemerable上的FirstOrDefault是使用foreach查找的。因此,Find速度會比FirstOrDefault快很多,據測試可能會快一倍以上。
結論:在List<T>上使用Find較速度較快,而其他IEnemrable<T>類型只能使用FirstOrDefault。