diff --git a/ICD.Common.Utils.Tests/Extensions/StringExtensionsTest.cs b/ICD.Common.Utils.Tests/Extensions/StringExtensionsTest.cs index 5cde184..45dc5dc 100644 --- a/ICD.Common.Utils.Tests/Extensions/StringExtensionsTest.cs +++ b/ICD.Common.Utils.Tests/Extensions/StringExtensionsTest.cs @@ -51,24 +51,6 @@ namespace ICD.Common.Utils.Tests.Extensions Assert.AreEqual("0", split[3]); } - [Test] - public void SplitStringDelimiterTest() - { - string[] split = "1234567890".Split("23").ToArray(); - - Assert.AreEqual(2, split.Length); - Assert.AreEqual("14567890", string.Join("", split)); - } - - [Test] - public void SplitStringDelimitersTest() - { - string[] split = "1234567890".Split(new[] { "23", "67" }).ToArray(); - - Assert.AreEqual(3, split.Length); - Assert.AreEqual("145890", string.Join("", split)); - } - [TestCase("12345", " 12 3 4 \t 5\n")] public void RemoveWhitespaceTest(string expected, string value) { diff --git a/ICD.Common.Utils/Extensions/StringExtensions.cs b/ICD.Common.Utils/Extensions/StringExtensions.cs index 48b8483..9354b27 100644 --- a/ICD.Common.Utils/Extensions/StringExtensions.cs +++ b/ICD.Common.Utils/Extensions/StringExtensions.cs @@ -134,97 +134,6 @@ namespace ICD.Common.Utils.Extensions .Select(i => extends.Substring(i * chunkSize, Math.Min(chunkSize, extends.Length - (i * chunkSize)))); } - /// - /// Splits a string by a given substring. - /// - /// - /// - /// - [PublicAPI] - public static IEnumerable Split(this string extends, string delimeter) - { - if (extends == null) - throw new ArgumentNullException("extends"); - - if (delimeter == null) - throw new ArgumentNullException("delimeter"); - - return SplitIterator(extends, delimeter); - } - - /// - /// Splits a string by a given substring. - /// Taken from - /// https://social.msdn.microsoft.com/Forums/en-US/914a350f-e0e9-45e0-91a4-6b4b2168e780/string-split-function - /// - /// - /// - /// - private static IEnumerable SplitIterator(string value, string delimeter) - { - int dSum = 0; - int sSum = 0; - int length = value.Length; - int delimiterLength = delimeter.Length; - - if (delimiterLength == 0 || length == 0 || length < delimiterLength) - { - yield return value; - yield break; - } - - char[] cd = delimeter.ToCharArray(); - char[] cs = value.ToCharArray(); - - for (int i = 0; i < delimiterLength; i++) - { - dSum += cd[i]; - sSum += cs[i]; - } - - int start = 0; - for (int i = start; i < length - delimiterLength; i++) - { - if (i >= start && dSum == sSum && value.Substring(i, delimiterLength) == delimeter) - { - yield return value.Substring(start, i - start); - start = i + delimiterLength; - } - - sSum += cs[i + delimiterLength] - cs[i]; - } - - if (dSum == sSum && value.Substring(length - delimiterLength, delimiterLength) == delimeter) - { - yield return value.Substring(start, length - delimiterLength - start); - yield return string.Empty; - } - else - yield return value.Substring(start, length - start); - } - - /// - /// Splits a string by the given substrings. - /// - /// - /// - /// - [PublicAPI] - public static IEnumerable Split(this string extends, IEnumerable delimeters) - { - if (extends == null) - throw new ArgumentNullException("extends"); - - if (delimeters == null) - throw new ArgumentNullException("delimeters"); - - string[] delimitersArray = delimeters as string[] ?? delimeters.ToArray(); - return delimitersArray.Length == 0 - ? new[] {extends} - : extends.Split(delimitersArray.First()) - .SelectMany(s => s.Split(delimitersArray.Skip(1))); - } - /// /// Removes whitespace from the string. ///