C #: возможно ли вернуть IOrderedEnumerable <T>? - PullRequest
6 голосов
/ 06 мая 2009

Можно ли вернуть IOrderedEnumerable<T> из метода, не используя методы OrderBy или OrderByDescending для IEnumerable<T>?

Я догадываюсь, возможно, нет ... но ... может быть, я ошибаюсь?


Причина: в основном любопытство. Меня просто поразило, когда я отвечал на возвращающиеся цифры в числе. И мой метод будет возвращать цифры в порядке возрастания, в соответствии с их весом в данном числе. Поэтому я подумал, что было бы неплохо, если бы они вышли упорядоченными таким образом, чтобы фреймворк также распознал упорядоченные. Конечно, мы можем утверждать, что с общей числовой точки зрения они не были заказаны. Но да ... если они должны или не должны были не здесь дело. Просто если бы это было возможно или нет.

Полагаю, я также имею в виду вопрос (или, по крайней мере, сейчас) о том, является ли IOrderedEnumerable<T> больше, чем просто IEnumerable<T> с другим именем. Есть ли что-нибудь еще? я знаю, что у него есть методы ThenBy и ThenByDescending, но используют ли они что-нибудь внутри IOrderedEnumerable<T>, или просто им не имеет смысла использовать непосредственно на IEnumerable<T>?

1 Ответ

2 голосов
/ 06 мая 2009

Ну, вы можете сами реализовать IOrderedEnumerable<T>, если хотите. Это не очень сложно, в зависимости от того, что вам нужно сделать. Самый простой вариант - просто позвонить OrderBy / OrderByDescending, хотя:)

Почему вы заинтересованы?

...