私はコインの噴水を持っているWPFアプリケーションを持っています。 10ミリ秒ごとにと呼ばれるlist
にcoin[i]
が追加されます。これらのコインは、for (int i = 0; i < coins.Count; i++)
のステートメントでコインを見つけるアニメーションで生成されます。C#リストオブジェクトの削除
if (coins[i].Top > 550)
{
coins.RemoveAt(i);
canvas.Children.Remove(coin[i]);
}
(はマージンを使用して、トップの位置を設定し、クラスの一部であるトップ):私が呼び出すオブジェクトを削除します。
しかし、coins.RemoveAt(i);
を使用すると、リスト番号も削除されるので、リスト番号の他のすべての項目は下に移動して「ギャップ」を閉じます。アイテムを取り除くときに「ギャップ」を埋めるのを止める方法はありますか?
そして配列。そして、私はキャンバスになるでしょう。子供たち。最初に離れてください。 – Paparazzi
これは、パパラッチが言っているように、私はcanvas.Children.Remove(コイン[私])を最初に呼び出すことになると思います。 – DForck42
forループ開始インデックスは、リストの最大値で指定します。その後、ループをカウントダウンします。その後、インデックスを削除することができます。インデックスを削除すると問題ありません。 – deathismyfriend