我可能不太关注IOrderedEnumerable<T>
集合。
如果我有my_field
类型IOrderedEnumerable<T>
的字段,并且我希望从公共财产获取者返回,我可以简单地return my_field;
吗?我习惯yield
将结果IEnumerable<T>
发送到IOrderedEnumerable<T>
以防止对内部持有的集合进行外部修改,但似乎这可能不是必需的,或者在{的情况下甚至可能不可能。 {1}}。
是吗?
所以我无法以任意顺序声明返回类型IOrderedEnumerable<T>
和yield
结果,这样排序是由代码结构定义的,而不是基于属性的比较IComparable<T>
S'是否遵循T
中的IOrderedEnumerable<T>
必须始终实施IComparable<T>
?
.NET API中是否有实现此接口的类,或者仅在运行时通过使用LINQ扩展生成类型?
答案 0 :(得分:2)
您可以安全地返回IOrderedEnumerable<T>
;它是不可改变的。
它仅由OrderedEnumerable
中的内部System.Linq
类实现,该类也是不可变的。