SO で、双方向列挙子を実装する方法について何度か尋ねられました (ここ、ここ)。私の質問は、方法(ほとんどの場合は些細なことです) ではなく、.NET プラットフォームにそのような型が存在しない理由です。
public interface IBidirectionalEnumerator<T> : IEnumerator<T>
{
bool MovePrev();
}
明らかに、これを実装できない多くのコレクション型があります。これは、MoveNext()
破壊的であるか、基になるコレクションの状態を変更するためです。しかし逆に、多くの型はこれを自明に実装できますList
( 、IList
、)。LinkedList
array
なぜそのようなタイプが存在しないのですか?