2024年3月11日发(作者:)

C#中字符串的比较操作

字符串比较是比较常用的操作,一般出于以下两个原因比较字符串:

• 判断相等

• 字符串排序

查询API判断字符串相等或排序时,由以下方法:

public override bool Equals(object obj);

public bool Equals(string value);

public static bool Equals(string a, string b);

public bool Equals(string value, StringComparison comparisonType);

public static bool Equals(string a, string b, StringComparison comparisonType);

public static int Compare(string strA, string strB);

public static int Compare(string strA, string strB, bool ignoreCase);

public static int Compare(string strA, string strB, StringComparison comparisonType);

public static int Compare(string strA, string strB, bool ignoreCase, CultureInfo culture);

public static int Compare(string strA, string strB, CultureInfo culture, CompareOptions options);

public static int Compare(string strA, int indexA, string strB, int indexB, int length);

public static int Compare(string strA, int indexA, string strB, int indexB, int length, bool

ignoreCase);

public static int Compare(string strA, int indexA, string strB, int indexB, int length,

StringComparison comparisonType);

public static int Compare(string strA, int indexA, string strB, int indexB, int length, bool

ignoreCase, CultureInfo culture);

public static int Compare(string strA, int indexA, string strB, int indexB, int length, CultureInfo

culture, CompareOptions options);

public static int CompareOrdinal(string strA, string strB);

public static int CompareOrdinal(string strA, int indexA, string strB, int indexB, int length);

public int CompareTo(object value);

public int CompareTo(string strB);

发现上述的方法中大多都有StringComparison类型的枚举,查询msdn后得到:

现简单写一段代码,测试Compare(string strA, string strB, StringComparison comparisonType)方法。

分别用到tCulture 和l。代码如下:

static void Main(string[] args)

{

string strA = "asdfadsfasdfew我ò啊?地?方?的?asd";

string strB = "adsfeaqfaead啊?多à发¢安2德?森-efadsfa";

Stopwatch sw = new Stopwatch();

();

for (int i = 0; i < 1000000; i++)

{