引用类型orderby降序
本文关键字:降序 orderby 引用类型 | 更新日期: 2023-09-27 18:16:16
我现在使用orderbydescent来排序IEnumerable集合的元素,我所做的就是分配回相同的集合。
this.InputParts =
this.InputParts.OrderByDescending(lazy => lazy.Metadata.Priority);
从msdn中,它似乎有一个延迟返回对象。(它有一个返回值,类似于我在c++中看到的按值传递)
我想,应该有什么东西可以执行引用类型排序。
说,而不是
this.InputParts =
this.InputParts.OrderByDescending(lazy => lazy.Metadata.Priority);
我们写入
//shall itself reorder the collection!
this.InputParts.SomeMSDNFunction(lazy => lazy.Metadata.Priority);
(我猜分配回相同的列表可能会带来性能问题。顺便说一句,我只是猜测!)
如果InputParts
的类型是某种材料集合,例如List<T>
或数组,则您所描述的函数确实存在;它们在调用集合时就地重新排序。
在更一般的情况下,它只是一个IEnumerable<T>
,不可能在可枚举对象实例上"强加顺序",因为这将要求替换生成枚举的代码。由于这显然是不可行的,您唯一能做的就是在周围包装您自己的排序代码,这就是LINQ所做的。结果与您最初的示例一样(返回的新实例,并且该对象强制排序顺序)。