天天看点

C#中字符串判断EndsWith和Contains的效率比较

关于字符串的判断,EndsWith和Contains下面做了两个简单的例子,运行后测试了一下所耗时间。
           
public void TestContains()
        {
            DateTime _starTime = DateTime.Now;
            string str = "2020年-10kV分支线";
            for (int i = 0; i < 1000000; i++)
            {
                if (str.Contains("分支线"))
                {
                    continue;
                }
            }
            var timeSpan = DateTime.Now - _starTime;
            string message1 = string.Format("\n共耗时{0}分{1}秒{2}毫秒", timeSpan.Minutes, timeSpan.Seconds, timeSpan.Milliseconds);
            GlobalVariable.CurrentDoc.Editor.WriteMessage(message1);
        }
           
public void TestEndsWith()
        {

            DateTime _starTime = DateTime.Now;
            string str = "2020年-10kV-分支线";
            for (int i = 0; i < 1000000; i++)
            {
                if (str.EndsWith("分支线"))
                {
                    continue;
                }
            }
            var timeSpan = DateTime.Now - _starTime;
            string message1 = string.Format("\n共耗时{0}分{1}秒{2}毫秒", timeSpan.Minutes, timeSpan.Seconds, timeSpan.Milliseconds);
            GlobalVariable.CurrentDoc.Editor.WriteMessage(message1);
        }
           

结果分析:

将以上两个方法各运行10次,取平均时间

TestContains耗时110ms

TestEndsWith耗时384.5ms

结论:字符串的Contains方法要比EndsWith效率要高。

这只是平常运用的情况下,如有其他情况,请各位朋友告知,感谢!