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

◆ Contains< T >()

static bool System.SpanHelpers.Contains< T > ( ref T searchSpace,
T value,
int length )
inlinestatic
Type Constraints
T :IEquatable<T> 

Definition at line 2980 of file SpanHelpers.cs.

2981 {
2982 nint num = 0;
2983 if (default(T) != null || value != null)
2984 {
2985 while (length >= 8)
2986 {
2987 length -= 8;
2988 if (!value.Equals(Unsafe.Add(ref searchSpace, num + 0)) && !value.Equals(Unsafe.Add(ref searchSpace, num + 1)) && !value.Equals(Unsafe.Add(ref searchSpace, num + 2)) && !value.Equals(Unsafe.Add(ref searchSpace, num + 3)) && !value.Equals(Unsafe.Add(ref searchSpace, num + 4)) && !value.Equals(Unsafe.Add(ref searchSpace, num + 5)) && !value.Equals(Unsafe.Add(ref searchSpace, num + 6)) && !value.Equals(Unsafe.Add(ref searchSpace, num + 7)))
2989 {
2990 num += 8;
2991 continue;
2992 }
2993 goto IL_0220;
2994 }
2995 if (length >= 4)
2996 {
2997 length -= 4;
2998 if (value.Equals(Unsafe.Add(ref searchSpace, num + 0)) || value.Equals(Unsafe.Add(ref searchSpace, num + 1)) || value.Equals(Unsafe.Add(ref searchSpace, num + 2)) || value.Equals(Unsafe.Add(ref searchSpace, num + 3)))
2999 {
3000 goto IL_0220;
3001 }
3002 num += 4;
3003 }
3004 while (length > 0)
3005 {
3006 length--;
3007 if (!value.Equals(Unsafe.Add(ref searchSpace, num)))
3008 {
3009 num++;
3010 continue;
3011 }
3012 goto IL_0220;
3013 }
3014 }
3015 else
3016 {
3017 nint num2 = length;
3018 num = 0;
3019 while (num < num2)
3020 {
3021 if (Unsafe.Add(ref searchSpace, num) != null)
3022 {
3023 num++;
3024 continue;
3025 }
3026 goto IL_0220;
3027 }
3028 }
3029 return false;
3030 IL_0220:
3031 return true;
3032 }

References System.length, and System.value.