美文网首页
C# foreach是只读遍历

C# foreach是只读遍历

作者: 小ocean | 来源:发表于2022-11-30 17:32 被阅读0次

先贴一段代码:执行后报错(集合已修改;可能无法执行枚举操作。)

 foreach (var data in dataDic.Values)
            {
                //排除已经清理的活动数据
                if (data.ClearStatus)
                {
                    dataDic.Remove(data.ActivityId);
                    continue;
                }
}

经过查找发现C# 我们不能在foreach中对List以及Dictionary等进行元素的添加和删除操作;
如果要对List以及Dictionary等进行元素的添加和删除操作,可以使用for

// List 使用方式-
List<int> oneList = new List<int>() { 0, 1, 2, 3, 4, 5 };
for (var i = 0; i < oneList.Count(); i++)
{
    oneList.Remove(i);
}

// dic 使用方式-
Dictionary<int, int> oneDic = new Dictionary<int, int> { { 1, 100 }, { 2, 200 } };
var keysList = oneDic.Keys.ToList();

foreach (var key in keysList)
{
    oneDic.Remove(key);
}

我们不能在foreach中对List以及Dictionary等进行元素的添加和删除操作;

相关文章

网友评论

      本文标题:C# foreach是只读遍历

      本文链接:https://www.haomeiwen.com/subject/mndsfdtx.html