C#之某種情況下switch...case...和if...else if...的效率比較
阿新 • • 發佈:2021-01-07
技術標籤:C#switch caseif else if字串比較C#
之前一直在考慮switch…case…和if…else if…在同樣字串判斷之間的效率問題,今天測試了一下,看了一下耗時。
string test;
for (int i = 0; i < 1000000; i++)
{
switch (str)
{
case"1": case"2": case "3": case "4": case "5": case "6": case "7":
test = "床前明月光";
break;
default:
break;
}
}
上面利用switch…case…,下面用if…else if…
for (int i = 0 ; i < 1000000; i++)
{
if (str == "1" || str == "2" || str == "3" || str == "4" || str == "5" || str == "6" || str == "7" )
{
test = "床前明月光";
}
}
都是迴圈100萬次,進行了幾十次運算取平均時間(不同的電腦時間可能不同),結果是:
switch...case...耗時:21ms
if...else if... 耗時:2ms
最終結論:在這種情況下的字串比較還是用if ...else if...效率高一些。
具體的情況根據你們所要比較的型別來判斷,這裡只提供一種情況,如有誤,請各位大佬不吝告知!謝謝。。。