gpt4 book ai didi

c# - 通过在循环内添加更多元素来扩展 foreach 循环

转载 作者:行者123 更新时间:2023-11-30 13:56:46 33 4
gpt4 key购买 nike

我有这个循环:

        List<int> list = new List<int>();
list.Add(1);
list.Add(2);
list.Add(3);

int listCount = list.Count;
for (int i = 0; i < listCount; i++) // Loop through List with for
{
if (i == 2)
{
list.Add(666);
listCount++;
}
System.Diagnostics.Debug.Write(list[i]);
}

我想知道如何将相同的逻辑应用于 foreach 循环? (在 foreach 循环中添加更多元素)。

像这样:

        List<int> list = new List<int>();
list.Add(1);
list.Add(2);
list.Add(3);

foreach (int i in list)
{
if (i == 2)
{
list.Add(666);
//do something to refresh the foreach loop
}
System.Diagnostics.Debug.Write(list[i]);
}

最佳答案

I am wondering how do I apply the same logic to foreach loop?

你不应该也不能。 无法在 foreach 循环内修改集合

参见:foreach, in (C# Reference)

If you need to add or remove items from the source collection, use a for loop.

一种方法是复制列表,然后像这样处理原始列表:

foreach (int i in list.ToList())
{
if (i == 2)
{
list.Add(666);
//do something to refresh the foreach loop
}
System.Diagnostics.Debug.Write(list[i]);
}

list.ToList 会复制列表,foreach 循环会对其进行处理,从而使您免于异常。但这更像是一个 hack,因为您没有在 foreach 循环中迭代原始列表。

关于c# - 通过在循环内添加更多元素来扩展 foreach 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24866865/

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