关于字符串的判断,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效率要高。
这只是平常运用的情况下,如有其他情况,请各位朋友告知,感谢!