我有一个自定义对象列表,例如:
public class MyObject
{
public int MyField { get; set; }
}
该列表有 12 个对象,其中 MyField 属性最初为 0,因此对象为:
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
我想每 n 次重复跳过 x 个项目。因此,如果我重复 2 并跳过 3,则新值应为:
1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0
如果我想重复 3 次并跳过 4 次,则新值将是:
1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0
是否可以使用 Linq
来做到这一点?
最佳答案
Linq 用于查询,而不是更新。您可以编写有副作用的 linq 方法,但由于惰性枚举和其他因素,直接的 for
或 foreach
循环是首选:
int repeat = 2;
int skip = 3;
for(int i = 0; i < list.Count && repeat > 0; i += skip)
{
list[i].MyField = 1;
repeat--;
}
关于c# - Linq 重复 List<T> 中给定范围的每第 n 个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36770689/