2013-02-18 31 views

回答

1

從技術上講,您可查詢可以爲所欲爲感覺。作爲IQueryable是一個接口,沒有構造等有沒有合同,你必須在這方面遵循 - 可查詢的只是一個可以通過一些具體的方法進行查詢的東西,它的開始狀態是不是因爲覆蓋的一部分界面合同。但是,您的擴展方法的文檔應清楚地指明返回的IQueryable對象是否保留了輸入序列的順序。

當然,如果有人對你可查詢的一個實例調用.OrderBy(),可以預計的是,你相應地重新排序的元素。但是,如果開發人員不打電話給.OrderBy(),那麼您可以按照您想要的順序自由返回元素。

+0

在這種情況下,這將是「預期行爲」的_Reverse_方法嗎? – 2013-02-18 17:42:53

+0

@CédricBignon不是所有的提供者都有一個所有方法的實現。它可能只是拋出一個異常,或者忽略它並按照它感覺的順序返回這些項目,除非它在'OrderBy'之後被調用。 – Servy 2013-02-18 17:44:55

+0

對不起,但是構造函數與合同有什麼關係? – 2013-02-18 18:26:11

1

如果使用您的供應商任何人需要訪問的元素在一個特定的順序,他們可以只使用IQueryable.OrderBy來代替。