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

◆ IndexOfCharArray()

unsafe int System.String.IndexOfCharArray ( char[] anyOf,
int startIndex,
int count )
inlineprivate

Definition at line 3315 of file String.cs.

3316 {
3317 ProbabilisticMap probabilisticMap = default(ProbabilisticMap);
3318 uint* charMap = (uint*)(&probabilisticMap);
3320 fixed (char* ptr = &_firstChar)
3321 {
3322 char* ptr2 = ptr + startIndex;
3323 while (count > 0)
3324 {
3325 int num = *ptr2;
3326 if (IsCharBitSet(charMap, (byte)num) && IsCharBitSet(charMap, (byte)(num >> 8)) && ArrayContains((char)num, anyOf))
3327 {
3328 return (int)(ptr2 - ptr);
3329 }
3330 count--;
3331 ptr2++;
3332 }
3333 return -1;
3334 }
3335 }
static bool ArrayContains(char searchChar, char[] anyOf)
Definition String.cs:3360
static unsafe void InitializeProbabilisticMap(uint *charMap, ReadOnlySpan< char > anyOf)
Definition String.cs:3337
static unsafe bool IsCharBitSet(uint *charMap, byte value)
Definition String.cs:3372
char _firstChar
Definition String.cs:35

References System.String._firstChar, System.String.ArrayContains(), System.count, System.String.InitializeProbabilisticMap(), System.String.IsCharBitSet(), and System.startIndex.

Referenced by System.String.IndexOfAny().