【发布时间】:2011-01-18 08:27:24
【问题描述】:
我有一个对象数组
MyObjects[] mos = GetMyObjectsArray();
现在我想将一些 id 为 1085 的元素移到第一个,所以我在 LINQ 中编写了这样的代码,有没有更优雅的方法来做到这一点?
mos.Where(c => c.ID == 1085).Take(1).Concat(mos.Where(c => c.ID != 1085)).ToArray();
注意,我想保存其他项目的定位,所以与第一个项目交换不是解决方案
【问题讨论】:
-
让您想要的带有
id的项目位于x位置。如何处理这个“空”项目?折叠还是交换? -
您的代码具有其他属性,例如 a) 创建新数组 b) 删除重复的
1085s。 c) 如果这样的项目不存在,则不投掷。这些必须完全复制吗? -
我想保存其他项目的定位,所以与第一个项目交换不是解决方案
-
为什么不用链表来代替呢?
-
只是我们在 UI 中有逻辑取决于数组类型,我是后端开发人员,不想更改该逻辑 :) 我知道数组不是您操作的最佳数据结构正在尝试