gpt4 book ai didi

c# - Linq 重复 List 中给定范围的每第 n 个元素

转载 作者:太空宇宙 更新时间:2023-11-03 19:00:31 28 4
gpt4 key购买 nike

我有一个自定义对象列表,例如:

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 方法,但由于惰性枚举和其他因素,直接的 forforeach 循环是首选:

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/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com