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 に答える