間隔で構成されるデータ構造を作成しました。データ構造には当然、すべての間隔を列挙する列挙子が必要ですが、間隔を異なる順序で列挙する 2 つの異なる列挙子を公開したいと考えています。
列挙子の 1 つは間隔を非常に高速に列挙しますが、その順序はいくぶん恣意的です。もう 1 つは、それらを辞書順に列挙しますが、少し遅くなります (ただし、間隔によって異なります)。達成しようとしていることに応じて、一方の列挙子が他方よりも優先される場合があります。
たとえば、 foreach ループで使用する列挙子をユーザーが決定できるようにする方法はありますか? そうでない場合は、列挙子を切り替えるために使用するプロパティを簡単に作成するか、コンストラクターが追加のパラメーターを受け取ることができます。しかし、利便性よりも混乱を招くのではないかと心配しています。
むしろ、他の列挙子については、IEnumerator を返す別のメソッドを作成する必要がありますか? このちょっと変わった問題のベストプラクティスはありますか?