-1
objTempList = objParentList;
foreach (var item in objTempList)
{
    objChildList = objList.AsQueryable()
                          .Where(x => x._parentId == item.filedbid)
                          .ToList<FileObjectView>();
    if (objChildList != null)
    {
        foreach (var child in objChildList)
        {
            objParentList.Add(child);
        }
    }
}

上記は私のコードです。問題はの割り当てですobjTempList = objParentList

objParentListobjTempList 次のステップで現在割り当てられている10行があり 、リストに自動的に反映され、ループにエラーメッセージが表示されているときにforeach行を追加しています。objParentListobjTempList

4

2 に答える 2

0

foreach ループ内でうっかり変更せずに の内容objParentListを代入したい場合は、 の新しいインスタンスを作成して に代入する必要があります。objTempListobjTempListobjParentListobjTempList

そうすれば、ループ内の親リストにリスト項目を追加してobjTempListも、参照ではなく元のコピーを割り当てているため、例外はスローされません。例えば:

objTempList = new List<T>(objParentList);
于 2012-07-19T15:05:42.023 に答える