0

我有一个“OrganisationUnit”类型的对象集合

   Id   Index
    A   1
    B   2
    C   3
    D   4
    E   5
    F   6
    G   7

Id F在Id B之前移动

我有 Id 的 F 和 B 作为从另一层传递的额外可用的 OrganisationUnit 对象。

现在会发生什么:

Id F获得Id B索引Id B和所有后面的 Id必须将它们的索引增加 1

结果应如下所示:

Id  Index
A   1
F   2
B   3
C   4
D   5
E   6
G   7

您将如何将 2 个对象与集合(已包含这 2 个对象)合并并使用 LINQ 使用 index 属性进行更新?

4

1 回答 1

1

一点点 Linq 和一个简单的循环:

var f = units.First(u => u.ID == "F");
int newFIndex = 2;
var updateUnits = units
    .Where(u => u.Index >= newFIndex && u.Index < f.Index)
    .ToList();
foreach (OrganisationUnit u in updateUnits)
    u.Index++;
f.Index = newFIndex;

演示

于 2012-12-04T09:52:27.837 回答