System.Globalization.CompareOptions Enumeration

Defines the string comparison options to use with System.Globalization.CompareInfo.

Syntax

[System.Flags]
[System.Runtime.InteropServices.ComVisible(true)]
public enum CompareOptions

Remarks

These options denote case sensitivity or necessity to ignore types of characters.

The .NET Framework uses three distinct ways of sorting: word sort, string sort, and ordinal sort. Word sort performs a culture-sensitive comparison of strings. Certain nonalphanumeric characters might have special weights assigned to them. For example, the hyphen ("-") might have a very small weight assigned to it so that "coop" and "co-op" appear next to each other in a sorted list. String sort is similar to word sort, except that there are no special cases. Therefore, all nonalphanumeric symbols come before all alphanumeric characters. Ordinal sort compares strings based on the Unicode values of each element of the string.

The CompareOptions.StringSort value can only be used with CompareInfo.Compare(string, string) and CompareInfo.GetSortKey(string, CompareOptions). ArgumentException is thrown if the CompareOptions.StringSort value is used with CompareInfo.IsPrefix(string, string, CompareOptions), CompareInfo.IsSuffix(string, string, CompareOptions), CompareInfo.IndexOf(string, char), or CompareInfo.LastIndexOf(string, char).

Note:

When possible, the application should use string comparison methods that accept a System.Globalization.CompareOptions value to specify the kind of comparison expected. As a general rule, user-facing comparisons are best served by the use of linguistic options (using the current culture), while security comparisons should specify CompareOptions.Ordinal or CompareOptions.OrdinalIgnoreCase.

Members

Member NameDescription
IgnoreCase

Indicates that the string comparison must ignore case.

IgnoreKanaType

Indicates that the string comparison must ignore the Kana type. Kana type refers to Japanese hiragana and katakana characters, which represent phonetic sounds in the Japanese language. Hiragana is used for native Japanese expressions and words, while katakana is used for words borrowed from other languages, such as "computer" or "Internet". A phonetic sound can be expressed in both hiragana and katakana. If this value is selected, the hiragana character for one sound is considered equal to the katakana character for the same sound.

IgnoreNonSpace

Indicates that the string comparison must ignore nonspacing combining characters, such as diacritics. The tp://go.microsoft.com/fwlink/?linkid=37123 defines combining characters as characters that are combined with base characters to produce a new character. Nonspacing combining characters do not occupy a spacing position by themselves when rendered.

IgnoreSymbols

Indicates that the string comparison must ignore symbols, such as white-space characters, punctuation, currency symbols, the percent sign, mathematical symbols, the ampersand, and so on.

IgnoreWidth

Indicates that the string comparison must ignore the character width. For example, Japanese katakana characters can be written as full-width or half-width. If this value is selected, the katakana characters written as full-width are considered equal to the same characters written as half-width.

None

Indicates the default option settings for string comparisons.

Ordinal

Indicates that the string comparison must use successive Unicode UTF-16 encoded values of the string (code unit by code unit comparison), leading to a fast comparison but one that is culture-insensitive. A string starting with a code unit XXXX comes before a string starting with YYYY, if XXXX is less than YYYY. This value cannot be combined with other System.Globalization.CompareOptions values and must be used alone.

OrdinalIgnoreCase

String comparison must ignore case, then perform an ordinal comparison. This technique is equivalent to converting the string to uppercase using the invariant culture and then performing an ordinal comparison on the result.

StringSort

Indicates that the string comparison must use the string sort algorithm. In a string sort, the hyphen and the apostrophe, as well as other nonalphanumeric symbols, come before alphanumeric characters.

Requirements

Namespace: System.Globalization
Assembly: mscorlib (in mscorlib.dll)
Assembly Versions: 1.0.5000.0, 2.0.0.0, 4.0.0.0