天天看點

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效率要高。

這隻是平常運用的情況下,如有其他情況,請各位朋友告知,感謝!