我有切换案例在我的程序中显示文本。我想知道我可以使用字典或枚举数字和文本吗?或者这样使用开关盒是否合适?
string result;
int number = int.Parse(Console.Readline());
switch (number)
{
case 1:
result += "ten";
break;
case 2:
result += "twenty";
break;
case 3:
result += "thirty";
break;
case 4:
result += "fourty";
break;
case 5:
result += "fifty";
break;
case 6:
result += "sixty";
break;
case 7:
result += "seventy";
break;
case 8:
result += "eighty";
break;
case 9:
result += "ninety";
break;
default:
result += "";
break;
}
答案 0 :(得分:2)
在这种情况下使用Dictionary{int,string}
可能不那么冗长:
var dictionary = new Dictionary<int, string>(9)
{
{1, "ten"},
{2, "twenty"},
{3, "thirty"},
{4, "fourty"},
{5, "fifty"},
{6, "sixty"},
{7, "seventy"},
{8, "eighty"},
{9, "ninety"},
};
string dictionaryEntry;
if (dictionary.TryGetValue(number, out dictionaryEntry))
{
result += dictionaryEntry;
}
此外,如果您打算进行大量字符串连接,请考虑使用StringBuilder而不是result
的字符串。
对于执行大量字符串操作的例程(例如在循环中多次修改字符串的应用程序),重复修改字符串会严重影响性能。另一种方法是使用StringBuilder,它是一个可变的字符串类。
答案 1 :(得分:1)
这可能听起来有点原始,但是如果你知道字符串将是连续的顺序,为什么不使用字符串数组呢?
string[] array = new string[] { "ten",
"twenty",
"thirty",
...
};
...
result += array[number-1];