ホームページ  >  に質問  >  本文

C# を使用してアルファベットを a から z までたどる

<p>アルファベットの横断について質問があります。 「a」で始まり「z」で終わるループが必要です。そして、ループは「aa」から始まり「az」までカウントアップされます。次に、「ba」から始まり、「bz」などに進みます...</p> <p>誰か解決策を知っていますか? </p> <h2>ありがとうございます</h2> <p>編集: 忘れていました。関数に文字「a」を指定すると、関数は「b」を返さなければなりません。 「bnc」が指定された場合、関数は「bnd」を返す必要があります。 </p>
P粉982881583P粉982881583394日前458

全員に返信(2)返信します

  • P粉764836448

    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 を使用するようにコードを構造化し、実際に使用できる最初の値が見つかったときに中断することもできます。

    返事
    0
  • P粉920485285

    P粉9204852852023-08-24 00:23:16

    編集: 元の投稿の最新の編集内容とまったく同じように作成してください

    これはテスト済みの最も単純な解決策です:

    リーリー

    返事
    0
  • キャンセル返事