0

IQueryableカスタムプロバイダーを作成したい。

IQueryableソース要素の順序を維持するための実装はありますか?

たとえば、(new [] { 1, 2, 3 }).AsMyQueriable().Select(x => x).ToArray()返すことができ3, 2, 1ますか?

4

2 に答える 2

1

技術的には、クエリ可能オブジェクトは、好きなように何でも実行できます。インターフェイスと同様IQueryableに、コンストラクターがないため、この点に関して従わなければならないコントラクトはありません。クエリ可能は、特定のメソッドを介してクエリできるものであり、その開始状態は、一部としてカバーされているものではありません。インターフェイスコントラクト。ただし、拡張メソッドのドキュメントには、入力シーケンスの順序が返されたIQueryableオブジェクトによって保持されているかどうかが明確に示されている必要があります。

もちろん、誰かが.OrderBy()クエリ可能なインスタンスを呼び出した場合、それに応じて要素を並べ替えることが期待されます。ただし、開発者が呼び出さない場合は.OrderBy()、任意の順序で要素を自由に返すことができます。

于 2013-02-18T17:36:20.717 に答える
1

いいえ。

プロバイダーを使用している人が特定の順序で要素にアクセスする必要がある場合は、IQueryable.OrderBy代わりに使用できます。

于 2013-02-18T17:37:18.013 に答える