Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 删除列表项时出现问题_Asp.net_C# 4.0 - Fatal编程技术网

Asp.net 删除列表项时出现问题

Asp.net 删除列表项时出现问题,asp.net,c#-4.0,Asp.net,C# 4.0,问题: List List=新列表(); 列表。添加(“a”); 列表。添加(“b”); 列表。添加(“c”); foreach(列表中的变量项) { 如果(项目==“a”) { 列表。添加(“af”); } } 上面是我在尝试将项添加到列表时的代码,它给出异常“集合已修改;枚举操作可能无法执行”。有人能帮我解释一下为什么我会遇到这个异常。当你在列表上迭代时,你不能修改它。 但您可以创建另一个列表并对其进行操作: List<string> list = new List<st

问题:

List List=新列表();
列表。添加(“a”);
列表。添加(“b”);
列表。添加(“c”);
foreach(列表中的变量项)
{
如果(项目==“a”)
{
列表。添加(“af”);
}
}

上面是我在尝试将项添加到列表时的代码,它给出异常“集合已修改;枚举操作可能无法执行”。有人能帮我解释一下为什么我会遇到这个异常。

当你在列表上迭代时,你不能修改它。
但您可以创建另一个列表并对其进行操作:

List<string> list = new List<string>();
        list.Add("a");
        list.Add("b");
        list.Add("c");

        foreach (var item in list)
        {
            if (item == "a")
            {
                list.Add("af");
            }
        }
List List=新列表();
列表。添加(“a”);
列表。添加(“b”);
列表。添加(“c”);
列表tmpList=新列表(列表);
foreach(列表中的变量项)
{
如果(项目==“a”)
{
tmpList.添加(“af”);
}
}
列表=tmpList;

您不能从foreach循环内部修改迭代的集合。这就是错误消息告诉您的。由于您使用的是一个列表,因此只需使用
for
循环即可

List<string> list = new List<string>();
list.Add("a");
list.Add("b");
list.Add("c");
List<string> tmpList = new List<string>(list);
foreach (var item in list)
{
    if (item == "a")
    {
        tmpList.Add("af");
    }
}
list = tmpList;
for(int i=0;i
以下是解释您所看到的相关信息:

只要集合保持不变,枚举数就保持有效。如果对集合进行了更改,例如添加、修改或删除元素,则枚举数将不可恢复地无效,并且下一次调用MoveNext或Reset将引发InvalidOperationException


显示您的事件代码和aspx页面信息不足您的母版页中有哪个事件火?你遇到了哪些问题?仅凭这一点信息,你无法解决你的问题。请发布您的cs和aspx代码。我无法发布我的代码,因为这是我的公司安全政策。您不需要发布确切的代码。做一个简单的例子来说明这个问题。否则,很难猜出问题出在哪里。
for(int i = 0; i < list.Count; i++)
{
    if (list[i] == "a")
    {
        list.Add("af");
    }
}