LINQ to [お気に入りのプロバイダーをここに挿入] についてというよりも、この質問はメモリ内コレクションの検索またはフィルター処理に関するものです。
IEnumerable
orを実装するオブジェクトでLINQ(または拡張メソッドの検索/フィルタリング)が機能することを知っていますIEnumerable<T>
。問題は、列挙の性質上、すべてのクエリの複雑さは少なくともO(n)ですか?
例えば:
var result = list.FirstOrDefault(o => o.something > n);
この場合、すべてのアルゴリズムは少なくともO(n)を要します。ただし、私の理解が正しければ、このクエリは列挙によって解決されるため、以前に注文した場合でもO(n)を取る必要があります。list
'something'
list
- O(log(n))でクエリを解決するためにできることはありますか?
- パフォーマンスが必要な場合、Array.Sort と Array.BinarySearch を使用する必要がありますか?