Durchlaufen Sie das Alphabet von a nach z mit C#
P粉982881583
2023-08-23 09:51:55
<p>Ich habe eine Frage zum Durchlaufen des Alphabets.
Ich möchte eine Schleife, die bei „a“ beginnt und bei „z“ endet. Dann beginnt die Schleife bei „aa“ und zählt bis „az“. Beginnen Sie dann mit „ba“, gehen Sie zu „bz“ und so weiter ...</p>
<p>Kennt jemand eine Lösung? </p>
<h2>Vielen Dank</h2>
<p>Bearbeiten: Ich habe vergessen, ich gebe der Funktion ein Zeichen „a“ und dann muss die Funktion „b“ zurückgeben. Wenn „bnc“ angegeben ist, muss die Funktion „bnd“ zurückgeben. </p>
第一次尝试,只使用a-z然后是aa-zz
请注意,这将在'zz'处停止。当然,循环中存在一些丑陋的重复。幸运的是,这很容易解决 - 并且它还可以更加灵活:
第二次尝试:更灵活的字母表
现在,如果你只想生成a、b、c、d、aa、ab、ac、ad、ba等,你可以调用
GetExcelColumns("abcd")
。第三次尝试(进一步修订)- 无限序列
可能使用递归会有更清晰的代码,但效率不会那么高。
请注意,如果你想在某个特定点停止,你可以使用LINQ:
“重新启动”迭代器
要从给定点重新启动迭代器,你可以像thesoftwarejedi建议的那样使用
SkipWhile
。当然,这相当低效。如果你能在调用之间保持任何状态,你可以保留迭代器(对于任一解决方案):或者,你可能能够构建你的代码以使用
foreach
,在找到第一个可以实际使用的值时中断。编辑:使其完全按照原始帖子的最新编辑要求执行
这是最简单的解决方案,并经过测试: