0

我需要从嵌套列表中向特定列表添加一个值。如果有任何列表包含一个名为 inputString 的值,则将其添加到该列表中;如果有,则将结果添加到该列表中;如果否,则使用结果创建新列表。代码如下。

           foreach(List<string> List in returnList )
            {
                    if (List.Contains(inputString))
                    {
                        //add a string called 'result' to this List
                    }
                    else
                    {
                        returnList.Add(new List<string> {result});

                    }
            }
4

1 回答 1

4

问题出在您的 else 分支中:

foreach (List<string> List in returnList)
{
    if (List.Contains(inputString))
    {
        //add a string called 'result' to this List
        List.Add(result);    // no problem here
    }
    else
    {
        // but this blows up the foreach
        returnList.Add(new List<string> { result });  
    }
}

解决方法不难,

// make a copy with ToList() for the foreach()
foreach (List<string> List in returnList.ToList())  
{
   // everything the same
}
于 2013-10-17T12:44:06.783 回答