From e9ea621b93fbb58d9edfca8375918791637bbd52 Mon Sep 17 00:00:00 2001 From: chai Date: Wed, 30 Dec 2020 20:59:04 +0800 Subject: +init --- Client/Assembly-CSharp/MemSafeStringExtensions.cs | 37 +++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 Client/Assembly-CSharp/MemSafeStringExtensions.cs (limited to 'Client/Assembly-CSharp/MemSafeStringExtensions.cs') diff --git a/Client/Assembly-CSharp/MemSafeStringExtensions.cs b/Client/Assembly-CSharp/MemSafeStringExtensions.cs new file mode 100644 index 0000000..034b2bc --- /dev/null +++ b/Client/Assembly-CSharp/MemSafeStringExtensions.cs @@ -0,0 +1,37 @@ +using System; +using System.Collections.Generic; + +public static class MemSafeStringExtensions +{ + public static void SafeSplit(this SubString subString, List output, char delim) + { + subString.Source.SafeSplit(output, delim, subString.Start, subString.Length); + } + + public static void SafeSplit(this string source, List output, char delim) + { + source.SafeSplit(output, delim, 0, source.Length); + } + + public static void SafeSplit(this string source, List output, char delim, int start, int length) + { + output.Clear(); + int num = start; + int num2 = start + length; + for (int i = start; i < num2; i++) + { + if (source[i] == delim) + { + if (num != i) + { + output.Add(new SubString(source, num, i - num)); + } + num = i + 1; + } + } + if (num != num2) + { + output.Add(new SubString(source, num, num2 - num)); + } + } +} -- cgit v1.1-26-g67d0