繁体   English   中英

C#如何在foreach / for循环中添加到数组的索引?

[英]C# how to add to the index of an array in a foreach / for loop?

C#新手,对为什么不起作用感到困惑。

假设我有一个{1、2、3}数组。

我将如何遍历此数组以设定的增量更改值,例如,如果增量为1:

{1,2,3}变为{2,3,4}

如果它的2变成{3,4,5}等。

这是我的尝试-

foreach (int i in ls)
{
int index = i + increment;
}

您几乎成功了,但是失败了,因为您将增量的结果放入了一个临时变量,然后在每个循环中都将其重置,并且没有更改原始数组

而且foreach不适合这种操作,因为无论如何您都需要一个索引来指向要编辑的正确数组元素,因此for更好

int increment = 1;
for (int i = 0; i < ls.Length; i++) {
   int newValue = ls[i] + increment;
   ls[i] = newValue;
}

我创建了一个小提琴,您可以测试

https://dotnetfiddle.net/lkkLUv

请注意,我或多或少地尝试了一下,以便您可以看到不同之处,但是可以将循环缩小为

for (int i = 0; i < ls.Length; i++) {
    ls[i] += increment;
}

使用您的表示法,应执行以下操作:

var newarr = ls.Select(w => w + increment);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM