15[
TypeForwardedFrom(
"mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089")]
91 m_SortVersion =
new SortVersion(0, 127,
new Guid(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 127));
106 true,
true,
true,
true,
true,
true,
true,
true,
true,
false,
107 true,
false,
false,
true,
true,
true,
true,
true,
true,
true,
108 true,
true,
true,
true,
true,
true,
true,
true,
true,
true,
109 true,
true,
false,
false,
false,
false,
false,
false,
false,
true,
110 false,
false,
false,
false,
false,
true,
false,
false,
false,
false,
111 false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
112 false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
113 false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
114 false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
115 false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
116 false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
117 false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
118 false,
false,
false,
false,
false,
false,
false,
true
191 if (
text.Length == 0)
271 result = ((
string2 !=
null) ? (-1) : 0);
329 result = ((
string2 !=
null) ? (-1) : 0);
1058 return Name.GetHashCode();
1080 return string.GetHashCode(
source);
1082 return string.GetHashCodeOrdinalIgnoreCase(
source);
1087 return string.GetHashCode(
source);
1089 return string.GetHashCodeOrdinalIgnoreCase(
source);
1107 return "CompareInfo - " +
Name;
1166 if (num < target.Length)
1176 if (target.Length >
source.Length)
1220 if (
num7 < target.Length)
1232 if ((uint)(
c3 - 97) <= 25
u)
1234 c3 = (char)(
c3 - 32);
1236 if ((uint)(
c4 - 97) <= 25
u)
1238 c4 = (char)(
c4 - 32);
1291 if (num < target.Length)
1301 if (target.Length >
source.Length)
1345 if (
num7 < target.Length)
1437 if ((uint)(
num2 - 97) <= 25
u)
1441 if ((uint)(
num3 - 97) <= 25
u)
1460 if (*
ptr4 >=
'\u0080')
1515 if (*
ptr4 >=
'\u0080')
1581 if ((uint)(
num2 - 97) <= 25
u)
1585 if ((uint)(
num3 - 97) <= 25
u)
1604 if (*
ptr4 >=
'\u0080')
1659 if (*
ptr4 >=
'\u0080')
1751 while (!
text.IsEmpty);
1758 byte[]
array =
null;
1767 if (num >
span2.Length)
1780 if (num == 0 || num >
span2.Length)
1800 return new SortVersion(
sortVersion,
LCID,
new Guid(
sortVersion, 0, 0, 0, 0, 0, 0, (
byte)(
LCID >> 24), (
byte)((
LCID & 0
xFF0000) >> 16), (
byte)((
LCID & 0
xFF00) >> 8), (
byte)((uint)
LCID & 0
xFFu)));
1835 for (
int i = 0; i <
source.Length; i++)
1844 for (
int i = 0; i <
source.Length; i++)
1847 if (
char.IsHighSurrogate(c) && i <
source.Length - 1)
1850 if (
char.IsLowSurrogate(
c2))
1955 byte[]
array =
null;
2188 int num = 134217728;
static unsafe int GetSortKey(IntPtr sortHandle, char *str, int strLength, byte *sortKey, int sortKeyLength, CompareOptions options)
static unsafe int IndexOf(IntPtr sortHandle, char *target, int cwTargetLength, char *pSource, int cwSourceLength, CompareOptions options, int *matchLengthPtr)
static void CloseSortHandle(IntPtr handle)
static ResultCode GetSortHandle(string localeName, out IntPtr sortHandle)
static int GetSortVersion(IntPtr sortHandle)
static unsafe bool StartsWith(IntPtr sortHandle, char *target, int cwTargetLength, char *source, int cwSourceLength, CompareOptions options, int *matchedLength)
static unsafe int CompareString(IntPtr sortHandle, char *lpStr1, int cwStr1Len, char *lpStr2, int cwStr2Len, CompareOptions options)
static unsafe int LastIndexOf(IntPtr sortHandle, char *target, int cwTargetLength, char *pSource, int cwSourceLength, CompareOptions options, int *matchLengthPtr)
static unsafe bool EndsWith(IntPtr sortHandle, char *target, int cwTargetLength, char *source, int cwSourceLength, CompareOptions options, int *matchedLength)
static unsafe int LCMapStringEx(string lpLocaleName, uint dwMapFlags, char *lpSrcStr, int cchSrc, void *lpDestStr, int cchDest, void *lpVersionInformation, void *lpReserved, IntPtr sortHandle)
static unsafe bool GetNLSVersionEx(int function, string localeName, NlsVersionInfoEx *lpVersionInformation)
static unsafe int CompareStringOrdinal(char *lpString1, int cchCount1, char *lpString2, int cchCount2, bool bIgnoreCase)
static unsafe int FindNLSStringEx(char *lpLocaleName, uint dwFindNLSStringFlags, char *lpStringSource, int cchSource, char *lpStringValue, int cchValue, int *pcchFound, void *lpVersionInformation, void *lpReserved, IntPtr sortHandle)
static unsafe int FindStringOrdinal(uint dwFindStringOrdinalFlags, char *lpStringSource, int cchSource, char *lpStringValue, int cchValue, BOOL bIgnoreCase)
static unsafe int CompareStringEx(char *lpLocaleName, uint dwCmpFlags, char *lpString1, int cchCount1, char *lpString2, int cchCount2, void *lpVersionInformation, void *lpReserved, IntPtr lParam)
static unsafe bool IsNLSDefinedString(int Function, uint dwFlags, IntPtr lpVersionInformation, char *lpString, int cchStr)
static void WriteUInt16BigEndian(Span< byte > destination, ushort value)
static bool IsWindows8OrAbove
static IntPtr GetCachedSortHandle(string sortName)
static readonly Dictionary< string, IntPtr > s_sortNameToSortHandleCache
unsafe int IndexOf(ReadOnlySpan< char > source, ReadOnlySpan< char > value, CompareOptions options, out int matchLength)
int IndexOf(string source, char value, int startIndex, int count, CompareOptions options)
int IndexOf(string source, char value, int startIndex)
unsafe SortVersion NlsGetSortVersion()
static int GetNativeCompareFlags(CompareOptions options)
int GetHashCode(ReadOnlySpan< char > source, CompareOptions options)
int LastIndexOf(string source, char value)
static readonly CompareInfo Invariant
void OnSerializing(StreamingContext ctx)
unsafe bool StartsWithOrdinalIgnoreCaseHelper(ReadOnlySpan< char > source, ReadOnlySpan< char > prefix, CompareOptions options, int *matchLengthPtr)
int LastIndexOf(ReadOnlySpan< char > source, Rune value, CompareOptions options=CompareOptions.None)
unsafe int IcuIndexOfCore(ReadOnlySpan< char > source, ReadOnlySpan< char > target, CompareOptions options, int *matchLengthPtr, bool fromBeginning)
unsafe int IcuCompareString(ReadOnlySpan< char > string1, ReadOnlySpan< char > string2, CompareOptions options)
unsafe bool NlsStartsWith(ReadOnlySpan< char > source, ReadOnlySpan< char > prefix, CompareOptions options, int *matchLengthPtr)
int Compare(ReadOnlySpan< char > string1, ReadOnlySpan< char > string2, CompareOptions options=CompareOptions.None)
int Compare(string? string1, string? string2, CompareOptions options)
int GetSortKey(ReadOnlySpan< char > source, Span< byte > destination, CompareOptions options=CompareOptions.None)
bool IsPrefix(string source, string prefix, CompareOptions options)
override string ToString()
unsafe int IcuGetHashCodeOfString(ReadOnlySpan< char > source, CompareOptions options)
int GetHashCodeOfStringCore(ReadOnlySpan< char > source, CompareOptions options)
unsafe int IndexOfCore(ReadOnlySpan< char > source, ReadOnlySpan< char > target, CompareOptions options, int *matchLengthPtr, bool fromBeginning)
int IndexOf(string source, string value, int startIndex, CompareOptions options)
unsafe bool StartsWithCore(ReadOnlySpan< char > source, ReadOnlySpan< char > prefix, CompareOptions options, int *matchLengthPtr)
int Compare(string? string1, int offset1, string? string2, int offset2, CompareOptions options)
SortKey GetSortKey(string source, CompareOptions options)
int LastIndexOf(string source, string value, int startIndex)
void OnDeserialized(StreamingContext ctx)
static unsafe bool NlsIsSortable(ReadOnlySpan< char > text)
static CompareInfo GetCompareInfo(string name, Assembly assembly)
unsafe bool StartsWithOrdinalHelper(ReadOnlySpan< char > source, ReadOnlySpan< char > prefix, CompareOptions options, int *matchLengthPtr)
int Compare(string? string1, int offset1, int length1, string? string2, int offset2, int length2, CompareOptions options)
bool IsSuffix(string source, string suffix)
static int InvariantGetSortKeyLength(ReadOnlySpan< char > source, CompareOptions options)
static int NlsIndexOfOrdinalCore(ReadOnlySpan< char > source, ReadOnlySpan< char > value, bool ignoreCase, bool fromBeginning)
static CompareInfo GetCompareInfo(string name)
unsafe bool EndsWithOrdinalHelper(ReadOnlySpan< char > source, ReadOnlySpan< char > suffix, CompareOptions options, int *matchLengthPtr)
static void CheckCompareOptionsForCompare(CompareOptions options)
int IndexOf(string source, string value, int startIndex, int count)
static void InvariantCreateSortKeyOrdinal(ReadOnlySpan< char > source, Span< byte > sortKey)
unsafe bool IcuStartsWith(ReadOnlySpan< char > source, ReadOnlySpan< char > prefix, CompareOptions options, int *matchLengthPtr)
int IndexOf(string source, string value, int startIndex, int count, CompareOptions options)
SortVersion m_SortVersion
SortKey InvariantCreateSortKey(string source, CompareOptions options)
static bool IsSortable(Rune value)
int IndexOf(string source, char value, int startIndex, CompareOptions options)
unsafe int FindString(uint dwFindNLSStringFlags, ReadOnlySpan< char > lpStringSource, ReadOnlySpan< char > lpStringValue, int *pcchFound)
int LastIndexOf(string source, char value, int startIndex, int count)
int LastIndexOf(string source, string value)
void OnDeserializing(StreamingContext ctx)
SortVersion IcuGetSortVersion()
int IndexOf(string source, char value)
int Compare(string? string1, string? string2)
override bool Equals([NotNullWhen(true)] object? value)
static bool IsSortable(char ch)
unsafe bool IsPrefix(ReadOnlySpan< char > source, ReadOnlySpan< char > prefix, CompareOptions options=CompareOptions.None)
int GetHashCode(string source, CompareOptions options)
SortKey CreateSortKeyCore(string source, CompareOptions options)
unsafe bool EndsWithCore(ReadOnlySpan< char > source, ReadOnlySpan< char > suffix, CompareOptions options, int *matchLengthPtr)
unsafe int IndexOfOrdinalIgnoreCaseHelper(ReadOnlySpan< char > source, ReadOnlySpan< char > target, CompareOptions options, int *matchLengthPtr, bool fromBeginning)
static bool IsSortable(ReadOnlySpan< char > text)
int CompareStringCore(ReadOnlySpan< char > string1, ReadOnlySpan< char > string2, CompareOptions options)
unsafe bool IsSuffix(ReadOnlySpan< char > source, ReadOnlySpan< char > suffix, CompareOptions options, out int matchLength)
int LastIndexOf(string source, char value, int startIndex)
unsafe bool NlsEndsWith(ReadOnlySpan< char > source, ReadOnlySpan< char > suffix, CompareOptions options, int *matchLengthPtr)
unsafe bool EndsWithOrdinalIgnoreCaseHelper(ReadOnlySpan< char > source, ReadOnlySpan< char > suffix, CompareOptions options, int *matchLengthPtr)
static ReadOnlySpan< bool > HighCharTable
static CompareInfo GetCompareInfo(int culture)
static void InvariantCreateSortKeyOrdinalIgnoreCase(ReadOnlySpan< char > source, Span< byte > sortKey)
int Compare(string? string1, int offset1, string? string2, int offset2)
unsafe SortKey NlsCreateSortKey(string source, CompareOptions options)
unsafe int NlsCompareString(ReadOnlySpan< char > string1, ReadOnlySpan< char > string2, CompareOptions options)
int CompareOptionIgnoreCase(ReadOnlySpan< char > string1, ReadOnlySpan< char > string2)
int IndexOf(string source, string value, CompareOptions options)
static unsafe IntPtr NlsGetSortHandle(string cultureName)
static unsafe int NlsCompareStringOrdinalIgnoreCase(ref char string1, int count1, ref char string2, int count2)
static bool IcuIsSortable(ReadOnlySpan< char > text)
static unsafe int FindStringOrdinal(uint dwFindStringOrdinalFlags, ReadOnlySpan< char > source, ReadOnlySpan< char > value, bool bIgnoreCase)
unsafe int IndexOf(ReadOnlySpan< char > source, ReadOnlySpan< char > value, CompareOptions options=CompareOptions.None)
int LastIndexOf(string source, char value, int startIndex, CompareOptions options)
int GetSortKeyCore(ReadOnlySpan< char > source, Span< byte > destination, CompareOptions options)
unsafe int IcuGetSortKeyLength(ReadOnlySpan< char > source, CompareOptions options)
static CompareInfo GetCompareInfo(int culture, Assembly assembly)
int GetSortKeyLengthCore(ReadOnlySpan< char > source, CompareOptions options)
int IndexOf(string source, string value)
int LastIndexOf(string source, char value, CompareOptions options)
static void ThrowCompareOptionsCheckFailed(CompareOptions options)
SortKey GetSortKey(string source)
static bool CanUseAsciiOrdinalForOptions(CompareOptions options)
int IndexOf(string source, char value, CompareOptions options)
bool IsPrefix(string source, string prefix)
unsafe SortKey IcuCreateSortKey(string source, CompareOptions options)
unsafe int NlsGetSortKeyLength(ReadOnlySpan< char > source, CompareOptions options)
unsafe int LastIndexOf(ReadOnlySpan< char > source, ReadOnlySpan< char > value, CompareOptions options, out int matchLength)
unsafe int IndexOfOrdinalHelper(ReadOnlySpan< char > source, ReadOnlySpan< char > target, CompareOptions options, int *matchLengthPtr, bool fromBeginning)
int LastIndexOf(string source, string value, int startIndex, CompareOptions options)
int IndexOf(ReadOnlySpan< char > source, Rune value, CompareOptions options=CompareOptions.None)
unsafe int NlsGetSortKey(ReadOnlySpan< char > source, Span< byte > destination, CompareOptions options)
unsafe bool IsSuffix(ReadOnlySpan< char > source, ReadOnlySpan< char > suffix, CompareOptions options=CompareOptions.None)
unsafe int NlsGetHashCodeOfString(ReadOnlySpan< char > source, CompareOptions options)
int LastIndexOf(string source, string value, int startIndex, int count, CompareOptions options)
unsafe bool IsPrefix(ReadOnlySpan< char > source, ReadOnlySpan< char > prefix, CompareOptions options, out int matchLength)
int LastIndexOf(string source, string value, int startIndex, int count)
int Compare(string? string1, int offset1, int length1, string? string2, int offset2, int length2)
bool IsSuffix(string source, string suffix, CompareOptions options)
void InitSort(CultureInfo culture)
bool _isAsciiEqualityOrdinal
unsafe int NlsIndexOfCore(ReadOnlySpan< char > source, ReadOnlySpan< char > target, CompareOptions options, int *matchLengthPtr, bool fromBeginning)
int GetSortKeyLength(ReadOnlySpan< char > source, CompareOptions options=CompareOptions.None)
override int GetHashCode()
int IndexOf(string source, char value, int startIndex, int count)
CompareInfo(CultureInfo culture)
unsafe int IcuGetSortKey(ReadOnlySpan< char > source, Span< byte > destination, CompareOptions options)
unsafe bool IcuEndsWith(ReadOnlySpan< char > source, ReadOnlySpan< char > suffix, CompareOptions options, int *matchLengthPtr)
unsafe int LastIndexOf(ReadOnlySpan< char > source, ReadOnlySpan< char > value, CompareOptions options=CompareOptions.None)
int LastIndexOf(string source, string value, CompareOptions options)
static int InvariantGetSortKey(ReadOnlySpan< char > source, Span< byte > destination, CompareOptions options)
static bool IsSortable(string text)
int IndexOf(string source, string value, int startIndex)
unsafe int IndexOf(ReadOnlySpan< char > source, ReadOnlySpan< char > value, int *matchLengthPtr, CompareOptions options, bool fromBeginning)
int LastIndexOf(string source, char value, int startIndex, int count, CompareOptions options)
static bool IsCustomCultureId(int cultureId)
static CultureInfo InvariantCulture
static CultureInfo GetCultureInfo(int culture)
static int CompareStringIgnoreCase(ref char strA, int lengthA, ref char strB, int lengthB)
static char ToUpper(char c)
static int IndexOfOrdinalIgnoreCase(ReadOnlySpan< char > source, ReadOnlySpan< char > value)
static int LastIndexOfOrdinalIgnoreCase(ReadOnlySpan< char > source, ReadOnlySpan< char > value)
static int CompareStringIgnoreCase(ref char strA, int lengthA, ref char strB, int lengthB)
static void ToUpper(char h, char l, out char hr, out char lr)
static int ComputeHash32(ReadOnlySpan< byte > data, ulong seed)
static byte Min(byte val1, byte val2)
virtual Assembly Assembly
static int GetLastPInvokeError()
static string Arg_ExternalException
static string Argument_OnlyMscorlib
static string ArgumentOutOfRange_NeedPosNum
static string Argument_CompareOptionOrdinal
static string ArgumentOutOfRange_GetByteCountOverflow
static string Argument_InvalidFlag
static string Argument_CustomCultureCannotBePassedByNumber
static string ArgumentOutOfRange_OffsetLength
static void ThrowCountArgumentOutOfRange_ArgumentOutOfRange_Count()
static void ThrowArgumentOutOfRangeException(System.ExceptionArgument argument)
static void ThrowArgumentNullException(string name)
static void ThrowArgumentException(ExceptionResource resource)
static void ThrowArgumentException_DestinationTooShort()
void OnDeserialization(object? sender)
static readonly IntPtr Zero
static OperationStatus DecodeFromUtf16(ReadOnlySpan< char > source, out Rune result, out int charsConsumed)
static UnicodeCategory GetUnicodeCategory(Rune value)