[ Team LiB ] |
Recipe 2.7 Controlling Case Sensitivity when Comparing Two StringsProblemYou need to compare the contents of two strings for equality. In addition, the case sensitivity of the comparison needs to be controlled. SolutionUse the Compare static method on the string class to compare the two strings. Whether the comparison is case-insensitive is determined by the third parameter of one of its overloads. For example: string lowerCase = "abc"; string upperCase = "AbC"; int caseSensitiveResult = string.Compare(lowerCase, upperCase, false); int caseInsensitiveResult = string.Compare(lowerCase, upperCase, true); The caseSensitiveResult value is -1 (indicating that lowerCase is "less than" upperCase) and the caseInsensitiveResult is zero (indicating that lowerCase "equals" upperCase). DiscussionUsing the static string.Compare method allows us the freedom to choose whether to take into account the case of the strings when comparing them. This method returns an integer indicating the lexical relationship between the two strings. A zero means that the two strings are equal, a negative number means that the first string is less than the second string, and a positive number indicates that the first string is greater than the second string. By setting the last parameter of this method (the IgnoreCase parameter) to true or false, we can determine whether the Compare method takes into account the case of both strings when comparing. Setting this parameter to true forces a case-insensitive comparison and setting this parameter to false forces a case-sensitive comparison. In the case of the overloaded version of the method with no IgnoreCase parameter, comparisons are always case-sensitive. See AlsoSee the "String.Compare Method" topic in the MSDN documentation. |
[ Team LiB ] |