30        while (num < 
s.Length)
 
   32            if (
char.IsHighSurrogate(readOnlySpan[num]) && num < 
s.Length - 1 && 
char.IsLowSurrogate(readOnlySpan[num + 1]))
 
   35                if (readOnlySpan[num] != hr || readOnlySpan[num + 1] != lr)
 
   43                if (
ToLower(readOnlySpan[num]) != readOnlySpan[num])
 
 
   70        while (num < 
s.Length)
 
   72            if (
char.IsHighSurrogate(readOnlySpan[num]) && num < 
s.Length - 1 && 
char.IsLowSurrogate(readOnlySpan[num + 1]))
 
   75                if (readOnlySpan[num] != hr || readOnlySpan[num + 1] != lr)
 
   83                if (
ToUpper(readOnlySpan[num]) != readOnlySpan[num])
 
 
  104        for (
int i = 0; i < 
source.Length; i++)
 
  107            if (
char.IsHighSurrogate(c) && i < 
source.Length - 1)
 
  110                if (
char.IsLowSurrogate(c2))
 
 
  125        for (
int i = 0; i < 
source.Length; i++)
 
  128            if (
char.IsHighSurrogate(c) && i < 
source.Length - 1)
 
  131                if (
char.IsLowSurrogate(c2))
 
 
  148        if (!
char.IsHighSurrogate(c) || 
index >= 
length - 1)
 
  153        if (!
char.IsLowSurrogate(c2))
 
 
  162        int num = 
Math.
Min(lengthA, lengthB);
 
  163        ref 
char source = ref strA;
 
  164        ref 
char source2 = ref strB;
 
  169            var (num5, elementOffset) = 
GetScalar(ref source2, num2, lengthB);
 
  174                source2 = ref 
Unsafe.Add(ref source2, elementOffset);
 
  183                source2 = ref 
Unsafe.Add(ref source2, elementOffset);
 
  186            return (
int)(num3 - num5);
 
  188        return lengthA - lengthB;
 
 
  197                char* ptr2 = ptr + (source.Length - 
value.Length);
 
  198                char* ptr4 = ptr3 + value.Length - 1;
 
  199                for (
char* ptr5 = ptr; ptr5 <= ptr2; ptr5++)
 
  205                        if (!
char.IsHighSurrogate(*ptr6) || ptr6 == ptr4)
 
  214                        else if (
char.IsHighSurrogate(*ptr7) && 
char.IsLowSurrogate(ptr7[1]) && 
char.IsLowSurrogate(ptr6[1]))
 
  235                        return (
int)(ptr5 - ptr);
 
 
  249                char* ptr2 = ptr + value.Length - 1;
 
  250                for (
char* ptr4 = ptr3 + (
source.Length - 
value.Length); ptr4 >= ptr3; ptr4--)
 
  256                        if (!
char.IsHighSurrogate(*ptr5) || ptr5 == ptr2)
 
  265                        else if (
char.IsHighSurrogate(*ptr6) && 
char.IsLowSurrogate(ptr6[1]) && 
char.IsLowSurrogate(ptr5[1]))
 
  286                        return (
int)(ptr4 - ptr3);
 
 
 
static char ToLower(char codePoint)
 
static char ToUpper(char codePoint)
 
static string ToLower(string s)
 
static unsafe int IndexOfIgnoreCase(ReadOnlySpan< char > source, ReadOnlySpan< char > value)
 
static unsafe int LastIndexOfIgnoreCase(ReadOnlySpan< char > source, ReadOnlySpan< char > value)
 
static char ToLower(char c)
 
static void ToLower(ReadOnlySpan< char > source, Span< char > destination)
 
static int GetScalar(ref char source, int index, int length)
 
static int CompareStringIgnoreCase(ref char strA, int lengthA, ref char strB, int lengthB)
 
static char ToUpper(char c)
 
static string ToUpper(string s)
 
static void ToUpper(ReadOnlySpan< char > source, Span< char > destination)
 
static void ToLower(char h, char l, out char hr, out char lr)
 
static void ToUpper(char h, char l, out char hr, out char lr)
 
static bool Equal(char h1, char l1, char h2, char l2)
 
static byte Min(byte val1, byte val2)
 
static uint GetScalarFromUtf16SurrogatePair(uint highSurrogateCodePoint, uint lowSurrogateCodePoint)
 
ReadOnlySpan< T > Slice(int start)