P粉7648364482023-08-24 00:42:38
まずは、a-z、次に aa-zz
を使用してみてください。 リーリーこれは「zz」で停止することに注意してください。もちろん、ループ内には醜い繰り返しがいくつかあります。幸いなことに、これは簡単に修正でき、より柔軟にすることもできます:
2 回目の試み: より柔軟なアルファベット
リーリーここで、a、b、c、d、aa、ab、ac、ad、ba などのみを生成したい場合は、GetExcelColumns("abcd")
を呼び出すことができます。
3 回目の試み (さらに改訂) - 無限シーケンス
リーリー再帰を使用するとコードがより明確になる可能性がありますが、効率はそれほど高くありません。
特定の時点で停止したい場合は、LINQ を使用できることに注意してください:
リーリー「再起動」イテレータ
特定のポイントから反復子を再起動するには、softwarejedi が提案したように Skipwhile
を使用できます。もちろん、これは非常に非効率です。呼び出し間で任意の状態を維持できる場合は、(どちらのソリューションでも) イテレータを保持できます。
リーリー
foreach を使用するようにコードを構造化し、実際に使用できる最初の値が見つかったときに中断することもできます。