1
這兩種方法之間是否存在任何性能差異?關於LINQ Any()方法的效率
// First approach, iterating until a match
public bool Find(IEnumerable<Object> allObjects, Object testObj)
{
foreach (Object obj in allObjects)
{
if (obj.Equals(testObj))
{ return true; }
}
return false;
}
// Second approach, using LINQ and Any()
public bool Find(IEnumerable<Object> allObjects, Object testObj)
{
var query = from Object obj in allObjects where obj.Equals(testObj) select obj;
return query.Any();
}
我的問題是,如果所產生的集合爲空的LINQ版本是否比較testObj到集合中的所有對象,然後在任何()方法檢查。這通常比第一次比賽後迭代停止的第一種情況效率更低。