【发布时间】:2015-12-21 06:36:15
【问题描述】:
我有一个List<IGrouping<string, InvoiceCount>> 来检查发票中的位置。它工作得很好,但是当一个职位已经在另一个发票中时,应该删除该职位,但它会出现异常
“集合已修改;枚举操作可能无法执行。”
我不知道如何解决这个问题
private static void ValidateInvoices(List<IGrouping<string, InvoiceCount>> invo)
{
var validationErrors = new StringBuilder();
foreach (IGrouping<string, InvoiceCount> invoice in invo)
{
for (var line = 1; line < invoice.Count(); line++)
{
if (!invoice.ElementAt(line).IsInSameInvoice(invoice.First()))
{
validationErrors.Append("Validation error in Invoice" + invoice.Key + " in line " + (line + 1) + Environment.NewLine);
if (invo.Contains(invoice))
try
{
invo.Remove(invoice);
}
catch (Exception ex)
{
throw ex;
}
}
}
}
if (validationErrors.Length > 0)
throw new Exception(validationErrors.ToString());
}
【问题讨论】:
标签: c#