Find和FirstOrDefault()有什么区别?
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。