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

◆ LastIndexOfCharArray()

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

Definition at line 3497 of file String.cs.

3498 {
3499 ProbabilisticMap probabilisticMap = default(ProbabilisticMap);
3500 uint* charMap = (uint*)(&probabilisticMap);
3502 fixed (char* ptr = &_firstChar)
3503 {
3504 char* ptr2 = ptr + startIndex;
3505 while (count > 0)
3506 {
3507 int num = *ptr2;
3508 if (IsCharBitSet(charMap, (byte)num) && IsCharBitSet(charMap, (byte)(num >> 8)) && ArrayContains((char)num, anyOf))
3509 {
3510 return (int)(ptr2 - ptr);
3511 }
3512 count--;
3513 ptr2--;
3514 }
3515 return -1;
3516 }
3517 }
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.LastIndexOfAny().