这是我的代码:
<xf:delete
ref="
instance('other')/Item[
Id = instance('main')/Item/Id
]"
/>
我在public static int getUnidades(List<int> lista)
{
string conString = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
SqlConnection SQLCon = new SqlConnection(conString);
string SQLCom = "Select UnidadesCliente FROM Cliente WHERE @id = IdCliente";
SqlCommand cmd = new SqlCommand(SQLCom, SQLCon);
List<int> listaUnidades = lista;
int t = 0;
foreach(int i in lista)
{
cmd.Parameters.AddWithValue("@id", Convert.ToString(i));
SQLCon.Open();
listaUnidades[t] = Convert.ToInt32(cmd.ExecuteScalar());
SQLCon.Close();
t++;
}
int total = 0;
foreach(int i in listaUnidades)
{
total = total + i;
}
return total;
}
循环中遇到InvalidOperationException,说“集合已被修改,枚举操作可能无法执行”。
现在,我不相信我正在修改这个系列,那有什么不对?
答案 0 :(得分:1)
我不相信我正在修改集合
您是,List<T>
是引用类型,listaUnidades
和lista
都指向同一个实例,因此在listaUnidades[t] =
您修改同一个集合你正在迭代。
让listaUnidades
成为新List<int>
并致电Add()
而不是使用索引器。