Возможно, я не совсем разбираюсь в коллекции 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?