合并具有重复对象的集合并使用LINQ更新某些属性

时间:2012-12-04 09:39:48

标签: linq c#-4.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的索引属性进行更新?

1 个答案:

答案 0 :(得分: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;

Demo