c#のお話だねえ
配列 ⋯ 何らかのデータ列で場合によっては要素を消したい
削除リスト ⋯ 配列から消したい要素の位置(idx)を追加していく
・for や foreachで配列を順にチェックし何らかの処理をし、削除するものだったなら削除リストにidxを追加
・全てチェックが終わったら、
〇削除リストの最後方からidxを取得し配列からリムーブ、削除リストの最後方もリムーブ
・削除リストが空になるまで〇を繰り返す
・配列を先頭から処理しなくてもいい場合は削除リストは不要で、配列を後方から処理し削除していけば良い

なぜ?と思う部分はあると思うが、それは紙やテキストエディタ書いて見ると理解出来ると思う

gistとか使ってコードを載せたり説明した方が楽だし見る方も分かりやすいかな?