using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Threading;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
var lines = new List<char>();
for (char i = 'a'; i <= 'z'; i++)
{
lines.Add(i);
}
//if-else
var sw = new Stopwatch();
sw.Start();
for (int i = 0; i < 100000000; i++)
{
foreach (var item in lines)
{
if (item == 'a') { }
else if (item == 'b') { }
else if (item == 'c') { }
else if (item == 'd') { }
else if (item == 'e') { }
else if (item == 'f') { }
else if (item == 'g') { }
else if (item == 'h') { }
else if (item == 'i') { }
else if (item == 'j') { }
else if (item == 'k') { }
else if (item == 'l') { }
else if (item == 'm') { }
else if (item == 'n') { }
else if (item == 'o') { }
else if (item == 'p') { }
else if (item == 'q') { }
else if (item == 'r') { }
else if (item == 's') { }
else if (item == 't') { }
else if (item == 'u') { }
else if (item == 'v') { }
else if (item == 'w') { }
else if (item == 'x') { }
else if (item == 'y') { }
else if (item == 'z') { }
else { }
}
}
sw.Stop();
Console.WriteLine("if-else 判断耗时:" + sw.ElapsedTicks / (decimal)Stopwatch.Frequency * 1000);
Thread.Sleep(100);
//switch-case
sw.Restart();
for (int i = 0; i < 100000000; i++)
{
foreach (var item in lines)
{
switch (item)
{
case 'a': { break; }
case 'b': { break; }
case 'c': { break; }
case 'd': { break; }
case 'e': { break; }
case 'f': { break; }
case 'g': { break; }
case 'h': { break; }
case 'i': { break; }
case 'j': { break; }
case 'k': { break; }
case 'l': { break; }
case 'm': { break; }
case 'n': { break; }
case 'o': { break; }
case 'p': { break; }
case 'q': { break; }
case 'r': { break; }
case 's': { break; }
case 't': { break; }
case 'u': { break; }
case 'v': { break; }
case 'w': { break; }
case 'x': { break; }
case 'y': { break; }
case 'z': { break; }
default: { break; }
}
}
}
sw.Stop();
Console.WriteLine("switch-case 判断耗时:" + sw.ElapsedTicks / (decimal)Stopwatch.Frequency * 1000);
}
}
}
结果:

代码示例对比了在C#中使用if-else和switch-case结构进行大量判断时的性能差异,通过Stopwatch类测量了两种方法的执行时间。结果显示,对于大量重复的字符判断,switch-case通常比if-else有更高的效率。
829

被折叠的 条评论
为什么被折叠?



