更新列表,同时在foreach循环的字符串列表中添加新项目

时间:2018-10-08 11:06:28

标签: c#

假设我们有一个称为AssetIds的List<string> assetIds = GetAllAssetId(assetentities);。现在假设我们有一个包含10个AssetId的列表。如果要在字符串列表中添加新的AssetItems,并且在执行foreach循环时需要更新列表。最好的方法是什么?

请在此处查看代码。 我正在执行Error :Collection was modified;枚举操作,可能无法执行。如果我尝试第二次进入foreach循环。

e

1 个答案:

答案 0 :(得分:0)

要在foreach循环中更改集合,那么您可以做什么-循环复制该集合

foreach(var element in assetIds.ToList()) { 
    assetIds.Add(new Item());
)

foreach循环所作用的集合不同于您添加到的集合 这是摆脱错误的一种方法。在您的情况下,我假设在任何情况下都不会使用新添加的项目两次。

编辑:
但是,请再次考虑这是否是您想要的解决方案。也许重写代码是更好的选择