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

◆ SplitInternal() [1/3]

string[] System.String.SplitInternal ( ReadOnlySpan< char > separators,
int count,
StringSplitOptions options )
inlineprivate

Definition at line 2608 of file String.cs.

2609 {
2610 if (count < 0)
2611 {
2612 throw new ArgumentOutOfRangeException("count", SR.ArgumentOutOfRange_NegativeCount);
2613 }
2617 while (true)
2618 {
2619 if (count <= 1 || Length == 0)
2620 {
2621 string text = this;
2622 if ((options & StringSplitOptions.TrimEntries) != 0 && count > 0)
2623 {
2624 text = text.Trim();
2625 }
2626 if ((options & StringSplitOptions.RemoveEmptyEntries) != 0 && text.Length == 0)
2627 {
2628 count = 0;
2629 }
2630 if (count != 0)
2631 {
2632 return new string[1] { text };
2633 }
2634 return Array.Empty<string>();
2635 }
2636 if (separators.IsEmpty)
2637 {
2638 options &= ~StringSplitOptions.TrimEntries;
2639 }
2640 Span<int> initialSpan = stackalloc int[128];
2643 sepList = sepListBuilder.AsSpan();
2644 if (sepList.Length != 0)
2645 {
2646 break;
2647 }
2648 count = 1;
2649 }
2650 string[] result = ((options != 0) ? SplitWithPostProcessing(sepList, default(ReadOnlySpan<int>), 1, count, options) : SplitWithoutPostProcessing(sepList, default(ReadOnlySpan<int>), 1, count));
2651 sepListBuilder.Dispose();
2652 return result;
2653 }
string[] SplitWithPostProcessing(ReadOnlySpan< int > sepList, ReadOnlySpan< int > lengthList, int defaultLength, int count, StringSplitOptions options)
Definition String.cs:2785
string[] SplitWithoutPostProcessing(ReadOnlySpan< int > sepList, ReadOnlySpan< int > lengthList, int defaultLength, int count)
Definition String.cs:2758
static void CheckStringSplitOptions(StringSplitOptions options)
Definition String.cs:2984
unsafe void MakeSeparatorList(ReadOnlySpan< char > separators, ref ValueListBuilder< int > sepListBuilder)
Definition String.cs:2841

References System.SR.ArgumentOutOfRange_NegativeCount, System.String.CheckStringSplitOptions(), System.count, System.String.Length, System.String.MakeSeparatorList(), System.options, System.String.SplitWithoutPostProcessing(), System.String.SplitWithPostProcessing(), and System.text.

Referenced by System.String.Split(), System.String.Split(), System.String.Split(), System.String.Split(), System.String.Split(), System.String.Split(), System.String.Split(), System.String.Split(), System.String.Split(), System.String.Split(), and System.String.SplitInternal().