C#では、IEnumeratorインターフェイスは、コレクションをトラバースして要素を確認する方法を定義します。IEnumerable<T>メソッドに渡すと元のソースが変更されないため、これは非常に便利だと思います。
ただし、Javaでは、Iteratorは削除操作を定義して(オプションで!)要素の削除を許可します。Iterable<T>メソッドは元のコレクションを変更できるため、メソッドに渡すことに利点はありません。
removeのオプション性は、拒否された遺贈の匂いの例ですが、それを無視すると(すでにここでremove説明されています) 、インターフェイスにイベントを実装するように促した設計上の決定に興味があります。
remove追加されることになった設計上の決定は何Iteratorですか?
別の言い方をすれば、明示的にremove定義されていないC#の設計上の決定はIEnumerator何ですか?