Является ли IOrderedEnumerable <T>неотъемлемо неизменной коллекцией?Должен ли / могу ли я уступить? - PullRequest
1 голос
/ 02 февраля 2010

Возможно, я не совсем разбираюсь в коллекции IOrderedEnumerable<T>.

Если у меня есть поле my_field типа IOrderedEnumerable<T>, и я хочу вернуть его из получателя публичной собственности,могу я просто return my_field;?Я привык yield выводить результаты в IEnumerable<T>, чтобы предотвратить внешнее изменение внутренней коллекции, но кажется, что это может быть не нужно или даже невозможно в случае IOrderedEnumerable<T>.

Это правильно?

Поэтому я не могу объявить тип возвращаемого значения IOrderedEnumerable<T>, а yield приводит к произвольному порядку, так что порядок определяется структурой кодаа не на основе свойств сравнения IComparable<T> с?Следует ли из этого, что T в IOrderedEnumerable<T> всегда должен реализовывать IComparable<T>?

Существуют ли классы в .NET API, которые реализуют этот интерфейс, или тип генерируется только во время выполнения посредством использованиярасширений LINQ?

1 Ответ

2 голосов
/ 02 февраля 2010

Вы можете спокойно вернуть IOrderedEnumerable<T>; он неизменен.

Он реализован только внутренним классом OrderedEnumerable в System.Linq, который также является неизменяемым.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...