Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ CompareStringIgnoreCase()

static int System.Globalization.Ordinal.CompareStringIgnoreCase ( ref char strA,
int lengthA,
ref char strB,
int lengthB )
inlinestaticpackage

Definition at line 8 of file Ordinal.cs.

9 {
10 int num = Math.Min(lengthA, lengthB);
11 int num2 = num;
12 ref char reference = ref strA;
13 ref char reference2 = ref strB;
14 char c = '\u007f';
15 while (num != 0 && reference <= c && reference2 <= c)
16 {
17 if (reference == reference2 || ((reference | 0x20) == (reference2 | 0x20) && (uint)((reference | 0x20) - 97) <= 25u))
18 {
19 num--;
20 reference = ref Unsafe.Add(ref reference, 1);
21 reference2 = ref Unsafe.Add(ref reference2, 1);
22 continue;
23 }
24 int num3 = reference;
25 int num4 = reference2;
26 if ((uint)(reference - 97) <= 25u)
27 {
28 num3 -= 32;
29 }
30 if ((uint)(reference2 - 97) <= 25u)
31 {
32 num4 -= 32;
33 }
34 return num3 - num4;
35 }
36 if (num == 0)
37 {
38 return lengthA - lengthB;
39 }
40 num2 -= num;
41 return CompareStringIgnoreCaseNonAscii(ref reference, lengthA - num2, ref reference2, lengthB - num2);
42 }
static int CompareStringIgnoreCaseNonAscii(ref char strA, int lengthA, ref char strB, int lengthB)
Definition Ordinal.cs:44

References System.Globalization.Ordinal.CompareStringIgnoreCaseNonAscii(), and System.Math.Min().

Referenced by System.Globalization.CompareInfo.Compare(), System.String.Compare(), System.String.Compare(), System.MemoryExtensions.CompareTo(), System.String.EndsWith(), and System.Globalization.Ordinal.EqualsIgnoreCase().