2009-05-06 11 views
6

Có thể trả lại số IOrderedEnumerable<T> từ phương thức mà không sử dụng phương thức OrderBy hoặc OrderByDescending trên IEnumerable<T> không?C#: Có thể trả lại IOrderedEnumerable <T> không?

Tôi đoán có lẽ không ... nhưng ... có thể tôi đã sai?


Lý do: Chủ yếu là tò mò. Nó chỉ đánh tôi khi thực hiện this answer khi trả về các chữ số trong một số. Và phương pháp của tôi sẽ trả về các chữ số theo thứ tự tăng dần, theo trọng số của chúng trong một số đã cho. Vì vậy, tôi nghĩ rằng nó có thể được tốt đẹp nếu họ ra lệnh ra theo một cách mà khuôn khổ sẽ nhận ra theo thứ tự là tốt. Tất nhiên chúng ta có thể lập luận rằng từ một quan điểm số phổ biến, chúng không được ra lệnh. Nhưng yeah ... nếu họ nên hay không nên không phải là điểm ở đây. Chỉ cần nếu nó có thể hay không.

Tôi đoán tôi cũng là loại câu hỏi ngụ ý (hoặc ít nhất là bây giờ) nếu một số IOrderedEnumerable<T> không chỉ là một tên khác với tên là IEnumerable<T>. Nó có chứa thêm gì không? tôi biết nó có các phương pháp ThenByThenByDescending, nhưng chúng có sử dụng bất kỳ thứ gì bên trong IOrderedEnumerable<T> hay chỉ là chúng không có ý nghĩa khi sử dụng trực tiếp trên IEnumerable<T>?

+0

Và tại sao bạn cần loại này? – Migol

+0

Bạn có muốn một bộ sưu tập được sắp xếp? –

Trả lời

2

Vâng, bạn có thể tự mình thực hiện IOrderedEnumerable<T> nếu bạn muốn ... không phải là cực kỳ khó, tùy thuộc vào những gì bạn cần làm. Tùy chọn đơn giản nhất là chỉ cần gọi OrderBy/OrderByDescending mặc dù :)

Tại sao bạn quan tâm?