一旦你开始处理错误。下一步可能是简化显示的错误。您的用户可能不需要知道所有 90 种错误类型,而且这会增加对服务器的攻击。
您可以做的是将错误代码分组并仅显示一般信息(基于 fab Jon 的代码)
class Program
{
public static readonly Dictionary<IEnumerable<int>, string> ErrorMessages =
new Dictionary<IEnumerable<int>, string>
{
{ Enumerable.Range(0,10), "Your frobinator was jamified" },
{ Enumerable.Range(10,10), "The grigbottle could not be doxicked" },
{ Enumerable.Range(20,10), "Ouch! That hurt!" },
{ Enumerable.Range(30,10), "The input was not palendromic" },
// etc
};
static void Main(string[] args)
{
int error = 2;
string message = ErrorMessages
.Where(m => m.Key.Contains(error))
.FirstOrDefault().Value;
Console.WriteLine(message); // "Your frobinator was jamified"
}
}
这个解决方案是O(N)
,而 Jon 的解决方案是O(1)
。但是在您工作的规模上O(N) ~ O(1)
,因为所有数据都在快速内存中,并且集合中的元素数量很少。