这里用String
比较的静态方法public static int Compare(String strA, String strB, StringComparison comparisonType);
来测试不同的StringComparison
的效率
直接上代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Threading;
using System.Globalization;
using System.Diagnostics;
namespace StringCompare
{
class Program
{
static void Main(string[] args)
{
Compare(StringComparison.Ordinal);
Compare(StringComparison.OrdinalIgnoreCase);
Compare(StringComparison.InvariantCulture);
Compare(StringComparison.InvariantCultureIgnoreCase);
Compare(StringComparison.CurrentCulture);
Compare(StringComparison.CurrentCultureIgnoreCase);
}
public static void Compare(StringComparison comparison)
{
string s1 = "visualstudio";
string s2 = "windows";
Stopwatch watch = new Stopwatch();
watch.Start();
for (int i = 0; i < 10000000; i++)
{
String.Compare(s1, s2, comparison);
}
watch.Stop();
Console.WriteLine(watch.ElapsedMilliseconds+" " +comparison.ToString());
}
}
}
结果:
通过结果可以看出:
StringComparison.Ordinal效率是最高的,是其它两个的20倍多!
所以比较的时候没有需求要求的情况下尽量用Ordinal