【发布时间】:2018-01-29 03:10:44
【问题描述】:
我一直在研究Find() 和 First() 两种 linq 方法之间的差异。我能找到的唯一区别(双关语)是Find() 使用foreach 循环而不是for 循环,而First() 不需要调用参数。
那么我有什么理由应该使用Find() 而不是First()?
编辑:我已经阅读了C# Difference between First() and Find() ,但它没有给出任何理由使用其中一个。它只是讨论了两者如何以不同的方式迭代列表。
【问题讨论】:
-
Find() 不需要调用参数。我认为这种说法是错误的,因为 Find 需要“谓词”作为参数。
-
Find() 不是 LINQ 扩展,而是特定于集合(List.Find、Array.Find 等),因此通常比 LINQ 扩展快
-
@Rawitas Krungkaew 那是我的错误。我的意思是说 First() 不需要参数。感谢您指出这一点。
标签: c# list linq optimization iteration