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

◆ StartsWith() [4/4]

bool System.String.StartsWith ( string value,
StringComparison comparisonType )
inline

Definition at line 814 of file String.cs.

815 {
816 if ((object)value == null)
817 {
818 throw new ArgumentNullException("value");
819 }
820 if ((object)this == value)
821 {
823 return true;
824 }
825 if (value.Length == 0)
826 {
828 return true;
829 }
830 switch (comparisonType)
831 {
832 case StringComparison.CurrentCulture:
833 case StringComparison.CurrentCultureIgnoreCase:
835 case StringComparison.InvariantCulture:
836 case StringComparison.InvariantCultureIgnoreCase:
838 case StringComparison.Ordinal:
839 if (Length < value.Length || _firstChar != value._firstChar)
840 {
841 return false;
842 }
843 if (value.Length != 1)
844 {
845 return SpanHelpers.SequenceEqual(ref Unsafe.As<char, byte>(ref GetRawStringData()), ref Unsafe.As<char, byte>(ref value.GetRawStringData()), (nuint)value.Length * (nuint)2u);
846 }
847 return true;
848 case StringComparison.OrdinalIgnoreCase:
849 if (Length < value.Length)
850 {
851 return false;
852 }
853 return Ordinal.EqualsIgnoreCase(ref GetRawStringData(), ref value.GetRawStringData(), value.Length);
854 default:
855 throw new ArgumentException(SR.NotSupported_StringComparison, "comparisonType");
856 }
857 }
static readonly CompareInfo Invariant
static CultureInfo CurrentCulture
static bool EqualsIgnoreCase(ref char charA, ref char charB, int length)
Definition Ordinal.cs:57
ref char GetRawStringData()
Definition String.cs:1351
static void CheckStringComparison(StringComparison comparisonType)
Definition String.cs:882
static CompareOptions GetCaseCompareOfComparisonCulture(StringComparison comparisonType)
Definition String.cs:890
char _firstChar
Definition String.cs:35

References System.String._firstChar, System.String.CheckStringComparison(), System.comparisonType, System.Globalization.CultureInfo.CurrentCulture, System.Globalization.Ordinal.EqualsIgnoreCase(), System.String.GetCaseCompareOfComparisonCulture(), System.String.GetRawStringData(), System.Globalization.CompareInfo.Invariant, System.String.Length, System.SR.NotSupported_StringComparison, System.SpanHelpers.SequenceEqual(), and System.value.