私はこれに完全に困惑しているので、おそらく誰かが私を正しい方向に向けることができます.
クラスの LinkedList を単純に出力する関数があります。
LinkedList<Component> components = new LinkedList<Component>();
...
private void PrintComponentList()
{
Console.WriteLine("---Component List: " + components.Count + " entries---");
foreach (Component c in components)
{
Console.WriteLine(c);
}
Console.WriteLine("------");
}
Component
オブジェクトには、実際には次のようなカスタム呼び出しToString()
があります。
int Id;
...
public override String ToString()
{
return GetType() + ": " + Id;
}
この関数は通常は正常に動作しますが、リスト内のエントリが約 30 程度になると、PrintcomplentList
foreach
ステートメントが返されるという問題に遭遇しました。InvalidOperationException: Collection was modified after the enumerator was instantiated.
ご覧のとおり、for ループ内のコードは変更しておらず、スレッドも明示的に作成していませんが、これは XNA 環境内にあります (重要な場合)。コンソール出力がプログラム全体の速度を低下させるほど頻繁に出力されることに注意してください。
私は完全に困惑しています。他の誰かがこれに遭遇しましたか?