Contains比StartsWith更快吗?

25 浏览
0 Comments

Contains比StartsWith更快吗?

昨天来了一位顾问,不知怎么地就提到了字符串的话题。他提到,他注意到对于长度小于某个特定值的字符串,Contains 实际上比 StartsWith 更快。我必须亲眼见证,所以我写了一个小应用程序,果然 Contains 更快!这怎么可能呢?

DateTime start = DateTime.MinValue;
DateTime end = DateTime.MinValue;
string str = "Hello there";
start = DateTime.Now;
for (int i = 0; i < 10000000; i++)
{
    str.Contains("H");
}
end = DateTime.Now;
Console.WriteLine("{0}ms 使用 Contains", end.Subtract(start).Milliseconds);
start = DateTime.Now;
for (int i = 0; i < 10000000; i++)
{
    str.StartsWith("H");
}
end = DateTime.Now;
Console.WriteLine("{0}ms 使用 StartsWith", end.Subtract(start).Milliseconds);

输出结果:

使用 Contains:726 毫秒
使用 StartsWith:865 毫秒

我还尝试了更长的字符串!

0