これは私が何度か遭遇したパターンであり、私は周りを検索しましたが、最良のアプローチが何であるかについてのコンセンサスを見つけていません.
public class ItemListWrapper
{
public List<Item> Contents;
}
public class Item
{
void DoStuffAndRemove() { }
}
DoStuffAndRemove() が呼び出されたときに、アイテムが何らかの機能を実行してから、ItemListWrapper から削除されるようにします。私が考えることができる2つのアプローチは、ItemListWrapperにIListを実装させることです(実行可能ですが、定型コードをすべて書かなければならないのはちょっと面倒です)、各アイテムにデリゲートを渡して呼び出すことで、リストからそれ自体を削除します(非常に複雑なようです) .
どんな助けでも大歓迎です。ありがとう。