字符串比较 – strA.ToLower()== strB.ToLower()或strA.Equals(strB,StringComparisonType)?

根据标题,你使用什么样的字符串比较练习?为什么?

你没有指定一个平台,但我猜是.NET。 我强烈建议你使用后一种forms – 因为案例比较并不像你想象的那么简单。 (它也避免了创建额外的字符串,但这是另一回事。)

例如,当您在土耳其运行时,如果您的代码在“mail”和“MAIL”中显示,您希望代码执行什么操作? 如果使用ToLower ,它将返回false,同样如果使用CurrentCultureIgnoreCase – 但如果使用InvariantCultureIgnoreCase ,它将返回true。 您需要考虑数据的来源以及您尝试使用它实现的目标。

有关更多信息和指导,请参阅MSDN中使用字符串的建议 。

除了其他任何事情,我会说后者更有效地表达了你的意图。 你实际上并不对字符串的小写值感兴趣 – 你以不区分大小写的方式对相等感兴趣…这正是第二种forms所表达的。

Equals调用可以更好地扩展,因为它是一个字符串操作而不是三个。

对于使用StringComparison.OrdinalIgnoreCase选项进行大小写的比较,您可以获得最佳性能。 但是,由于它没有考虑文化差异,因此可能并不总能得出您想要的结果。

如果要更改大小写进行比较,建议您使用ToUpper而不是ToLower 。 一些异国情调的字母不能从大写到小写正确转换,但是从小写到大写的转换有效。

在大多数情况下,性能并不重要,因此您应该使用在这种情况下最有意义的替代方案。

您没有指定使用哪种语言,但是从==运算符看它看起来像C#。 如果你要使用VB,你应该考虑到=运算符不使用字符串类的相等opreator,而是VB自己进行比较的逻辑,这略有不同。

使用第二个比第一个更好。 因为,所有语言都支持第二种类型,使用起来会更方便。