C# 列表集合已修改-尝试使用foreach循环时出错
我试图修改列表集合列表值中的一些值。我试图修改的值listValues[I].destinationValue和listValues[I].sourceKey,它也是一个列表集合。当我尝试向集合添加另一个值时,它使用foreach循环工作。但当它转到foreach循环值中的下一个值时,它停止,我得到错误:System.InvalidOperationException:“Collection was modified;”C# 列表集合已修改-尝试使用foreach循环时出错,c#,list,C#,List,我试图修改列表集合列表值中的一些值。我试图修改的值listValues[I].destinationValue和listValues[I].sourceKey,它也是一个列表集合。当我尝试向集合添加另一个值时,它使用foreach循环工作。但当它转到foreach循环值中的下一个值时,它停止,我得到错误:System.InvalidOperationException:“Collection was modified;” 你能建议我如何克服这个问题吗 在foreach循环中,您不会编辑相同的列表
你能建议我如何克服这个问题吗 在foreach循环中,您不会编辑相同的列表或相同的枚举列表,因为我们对可枚举项使用相同的列表
只需使用for loop进行编辑-它就可以工作。将foreach转换为for loop for int i=0的可能重复项;i
foreach (var listValue in listValues)
{
if (listValue.hostName == data[4] && listValue.description == data[3] && listValue.ruleName == data[2])
{
var i = listValues.FindIndex(x => x.hostName.Equals(listValue.hostName));
listValues[i].destinationValue.Add(data[0]);
listValues[i].sourceKey.Add(data[1]);
}
else
{
listValues.Add(docValueModelClass);
}
}
if (listValues.Count == 0)
{
listValues.Add(docValueModelClass);
}