如果我们有两个代码
url.ToLower().EndsWith("_vti_bin/sanjay.aspx")
url.EndsWith("_vti_bin/sanjay.aspx", StringComparison.InvariantCultureIgnoreCase)
哪一个使用效率高,为什么?
答案 0 :(得分:0)
当你绝对需要基于文化的语言比较时,你不应该更喜欢StringComparison.InvariantCultureIgnoreCase
,在这种情况下,ToLower()
没问题,
否则,当您想要比较不同文化中的语言字符串时,可以使用StringComparison.InvariantCultureIgnoreCase
。
答案 1 :(得分:0)
第二个更有效,因为
ToLower()
是额外的函数调用,与第二个选项相比。EndsWith(someString)
会致电EndsWith(someString, StringComparison)
如果你解编译System.string
(我用过ILSpy),你会发现这个
EndsWith(str)
[__DynamicallyInvokable]
public bool EndsWith(string value)
{
return this.EndsWith(value, string.LegacyMode ? StringComparison.Ordinal : StringComparison.CurrentCulture);
}
EndsWith(str, StringComparision)
[__DynamicallyInvokable, ComVisible(false), SecuritySafeCritical]
public bool EndsWith(string value, StringComparison comparisonType)
{
.. actual implementation
}
答案 2 :(得分:-1)
第二个,首先你要调用两个函数。