Может быть выгодно, чтобы метод возвращал IOrderedEnumerable<T> вместо IEnumerable<T>?

Может быть выгодно, чтобы метод возвращал IOrderedEnumerable вместо IEnumerable?

2 ответа

Решение

Только если вы ожидаете, что люди будут каждый раз заказывать это перечислимое и будет трудно понять, как это сделать, ИЛИ, если вы можете предоставить коллекцию, которая реализует этот интерфейс, который может эффективно упорядочить ее содержимое и в сочетании с методом расширения, который знает вашей коллекции.

Лучший вариант - вернуть определенный тип коллекции (подробности см. В Рихтере). 99 раз из 100, кто бы ни получал даже простое перечислимое, может использовать стандартные методы расширения linq, чтобы заказать его, если они захотят.

В частности, стоило бы сделать, если это имеет смысл для дальнейшего .ThenBy звонки, а не иначе.

Другие вопросы по тегам