重构这个/减少LOC的好方法?

Rya*_*hel 0 c# refactoring character switch-statement

我有这个代码:

switch (currentLetter)
{
    case 'A': return 'B';
    case 'B': return 'C';
    case 'C': return 'D';
    case 'D': return 'E';
    case 'E': return 'F';
    case 'F': return 'G';
    case 'G': return 'H';

    case 'a': return 'b';
    case 'b': return 'c';
    case 'c': return 'd';
    case 'd': return 'e';
    case 'e': return 'f';
    case 'f': return 'g';
    case 'g': return 'h';
}
Run Code Online (Sandbox Code Playgroud)

我想到了许多方法来改变它,但我不确定选择哪个.我可以替换所有返回(char)(currentLetter + 1),使用带有ASCII值的if语句来确定范围,然后执行(char)(currentLetter + 1),使用Enumerable.Range.Contains然后查看该值是否在范围内,用if替换开关等.

这段代码不会在其他任何地方重复,我不确定这是不是最好的方法,因为代码的读者对于正在发生的事情非常清楚,他们不必考虑字符代码,算术等.此外,永远不会有任何更多的字符添加到case语句,所以它不会变得笨拙.

不确定我是应该保留原样还是更改它.

iiv*_*vel 5

别管它.

代码中的代码清晰度不会在整个代码库中复制/粘贴,通常比"优雅"解决方案更可取,因为可能有其他人可能最终需要维护它(或者你自己试图记得以后你还在做什么.

如果你正在寻找一个迭代器类型的函数 - 这里有一个SO:如何按字母顺序找出下一个字符?