【发布时间】:2014-07-24 07:17:05
【问题描述】:
我试图让我的代码更快,我得到了很多 If-else 和 if-or 。我知道如果你有超过 5 个 if/case,switch case 会更快。那么if-else 与 if-or 的速度有多快,它们是一样的吗?
if (item.Datum.Substring(5, 5) == "06-20" || item.Datum.Substring(5, 5) == "06-21")
{
Something
}
else if item.Datum.Substring(5, 5) == "06-22" || item.Datum.Substring(5, 5) == "06-23")
{
Something
}
或
if (item.Datum.Substring(5, 5) == "06-20")
{
Something
}
else if (item.Datum.Substring(5, 5) == "06-21")
{
Something
}
else if (item.Datum.Substring(5, 5) == "06-22")
{
Something
}
else if (item.Datum.Substring(5, 5) == "06-23")
{
Something
}
或者我应该只用开关盒吗?
switch(item.Datum.Substring(5, 5))
{
case "06-20", "06,21":
Something
break;
case "06-22", "06,23":
Something
break;
}
【问题讨论】:
-
除此之外,不要给
Substring打电话这么多次! -
如果你不每天调用这个函数百万次,我会认为它是过早的优化。我敢打赌,“
Something”功能所花费的时间比您通过实施“案例”开关节省的时间要多得多。 -
你分析过你的代码吗?这真的是其性能的瓶颈吗?如果是这样,您是否描述了替代方案?如果是这样,请选择您测量过以获得最佳性能的那个。
标签: c# if-statement case