
所以我做的事情如下:
IEnumerable<ItemType> ordered = myItems.OrderBy( (item) => item.Age);
但是,我想修改myItems集合本身以获得有序序列……是否可能?
我想要的东西:
myItems.someActionHere // This should modify myItems in place.
这可能是一个新手或菜鸟问题.对于那个很抱歉.
解决方法 如果它是一个数组,您可以使用 Array.Sort.这将执行就地排序而不重复引用/值.但是,同样地,您可以将.ToArray()或.ToList()标记到linq语句的末尾,以“实现”有序的可枚举,如果重复引用不是问题(通常不是).
例如:
myItems = myItems.OrderBy(i => i.Age).ToArray();
如果你绝对需要它作为另一个ReadonlyCollection实例 – 你可以这样做:
myItems = new ReadonlyCollection<ItemType>(myItems.OrderBy(i => i.Age).ToArray());
注意.ToArray()的工作原理是因为数组实现了IList< T>.即使它们不可修改.
或者 – 也有Array.AsReadOnly – 打开它的头:
myItems = Array.AsReadonly(myItems.OrderBy(i => i.Age).ToArray());
除了是一个较短的代码行,我没有看到太多的好处 – 除非减少角括号对你很重要:)
总结以上是内存溢出为你收集整理的c# – 在linq中使用OrderBy()?全部内容,希望文章能够帮你解决c# – 在linq中使用OrderBy()?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)