如何根据元素的位置使用Linq重命名数据?

Joa*_*nge 4 .net c# linq ienumerable

如果我有一个Effect集合,我该IEnumerable<Effect>,如何根据它们在集合中的位置设置它们的.Name属性?

所以最后,我只想让它们从1到n重命名.

<inside the collection>
effectInstance1.Name = Effect 1;
effectInstance2.Name = Effect 2;
effectInstance3.Name = Effect 3;
...
Run Code Online (Sandbox Code Playgroud)

这对Linq有可能吗?

Mar*_*ell 8

LINQ是不是真的打算突变无论如何 ; 但是,您可以使用Select包含索引的重载之类的东西.但说实话?只需循环并保持计数器.更容易理解,这很重要.

int position = 0;
foreach(var obj in collection) {
    position++;
    obj.Name = "Effect " + position.ToString();
}
Run Code Online (Sandbox Code Playgroud)