在C#中,我们常用的方式是先把字符串全部转换为大写(ToUpper)或者全部转换为小写(ToLower)之后再进行比较;

string str1 = "True";
string str2 = "true";
bool equal1 = str1.ToUpper().Equals(str2.ToUpper());
bool equal2 = str1.ToLower().Equals(str2.ToLower());

但是这种方式,我们不仅需要先判断当前这个字符串是否为空,同时它的性能也不高,今天来介绍一个官方提供的方法(string.Compare),同时我们来比对一下他们之间的性能差异

bool equal3 = string.Compare(str1, str2, StringComparison.OrdinalIgnoreCase) == 0;


字符串比较 - 忽略大小写_C#

从结果不难看出,官方提供的方法不仅在运行速度上还是内存消耗上都要比先转换成大写或者先转换成小写来的更优


string.Compare的第三个入参是一个枚举,它的详细讲解如下

字符串比较 - 忽略大小写_字符串比较_02