RemoveAt()での削除でエラーが出る

Q.RemoveAt()で削除を行う際、いくつか削除を行うとエラーになってしまいます。

A.RemoveAt()で削除する際には順序が重要になります。
 例えば、A,B,C,D,Eとなっていて、
  RemoveAt(2)
  RemoveAt(4)
 とすると
 RemoveAt(2)の時点で
  A,B,D,E
 となるため、
 RemoveAt(4)はエラーになります。(インデックスが3までになっているので。)
 これを逆に処理すると
   RemoveAt(4)
   RemoveAt(2)
 となりますが、
 RemoveAt(4)の時点で
  A,B,C,D
 RemoveAt(2)で
  A,B,D
となり、想定したとおりの動作になります。