IQueryable
カスタムプロバイダーを作成したい。
IQueryable
ソース要素の順序を維持するための実装はありますか?
たとえば、(new [] { 1, 2, 3 }).AsMyQueriable().Select(x => x).ToArray()
返すことができ3, 2, 1
ますか?
IQueryable
カスタムプロバイダーを作成したい。
IQueryable
ソース要素の順序を維持するための実装はありますか?
たとえば、(new [] { 1, 2, 3 }).AsMyQueriable().Select(x => x).ToArray()
返すことができ3, 2, 1
ますか?
技術的には、クエリ可能オブジェクトは、好きなように何でも実行できます。インターフェイスと同様IQueryable
に、コンストラクターがないため、この点に関して従わなければならないコントラクトはありません。クエリ可能は、特定のメソッドを介してクエリできるものであり、その開始状態は、一部としてカバーされているものではありません。インターフェイスコントラクト。ただし、拡張メソッドのドキュメントには、入力シーケンスの順序が返されたIQueryable
オブジェクトによって保持されているかどうかが明確に示されている必要があります。
もちろん、誰かが.OrderBy()
クエリ可能なインスタンスを呼び出した場合、それに応じて要素を並べ替えることが期待されます。ただし、開発者が呼び出さない場合は.OrderBy()
、任意の順序で要素を自由に返すことができます。
いいえ。
プロバイダーを使用している人が特定の順序で要素にアクセスする必要がある場合は、IQueryable.OrderBy
代わりに使用できます。