1
これら2つの方法のパフォーマンスに違いはありますか?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を比較するかどうかです。これは、最初の一致後に反復が停止する最初のケースより一般的に効率が悪くなります。