我编写了这种方法来满足我的需求。这里还有三个案例值,但我没有包括它们。
public static string scoreColumn(int num)
{
switch (num)
{
case 1: return "English";
case 2: return "Kanji";
}
return "";
}
有人能告诉我这是在这种方法中返回字符串的最佳和最简洁的方法。我错过了一种更明显,更简单的方法来实现相同的功能吗?
答案 0 :(得分:2)
字符串数组可以帮助我而不是编写新方法。
答案 1 :(得分:2)
您可以将Dictionary用于此目的。
private static readonly Dictionary<int, string> dic = new Dictionary<int, string>
{
{1,"abc" },
{2,"efg" },
//...
};
public static string scoreColumn(int num)
{
string val;
if(dic.TryGetValue(num, out val)) return val;
else return "";
}
对于大量案例,词典表现更好。对于使用字典的少量案例也不应该是一个问题。也可以使用字典,您可以更轻松地管理案例。
答案 2 :(得分:2)
在这种情况下,与整数相比,enum
是更好的选择,并且由于您的描述没有空格,因此您只需使用.ToString()
输出枚举名称。
如果你想变得更加漂亮,你可以为枚举成员添加属性,但是将它们取出需要一些反思技巧。你可以将这个扩展方法封装起来,但它是一种丑陋的方法。
有关示例,请参阅http://www.codeducky.org/ins-outs-c-enums/(最后一个示例使用属性,它们也显示.ToString()方法。)
答案 3 :(得分:2)
使用易于使用和阅读的内容,并仅在需要时担心效率。
string[] scoreColumn = { "English", "Kanji" };
string result = scoreColumn.ElementAtOrDefault(num - 1);