1

私は現在、効率に大きく依存するデータ構造を構築しています。

Find(item => item.X = myObject.Property) メソッドが実際にどのように機能するかについて、リソースを提供してくれる人はいますか? 要素が見つかるまで、すべての要素を直線的に繰り返しますか?

myObject のインデックスを知っていて、ElementAt(index) を使用するとどうなるでしょうか。

この2つのうち、どちらが最も効率的でしょうか?

4

1 に答える 1

6

からMSDN documentation on List<T>.Find

このメソッドは線形検索を実行します。したがって、このメソッドは O(n) 操作です。ここで、n は Count です。

それは最適化されており、直接インデックスを実行すると思います。しかし、とにかく具象型からこのオブジェクトを使用しているように見えるので、直接インデックスを作成しないのはなぜですか? このような:ElementAtIListList

var result = list[index];

インデックスが既にわかっている場合は、検索しても意味がありません。まっすぐ行ってください。

于 2012-05-23T22:40:25.173 に答える