Amido.Common.Extensions.StringExtensions.SplitEx C# (CSharp) Method

SplitEx() public static method

public static SplitEx ( this input, char separator, char escapeCharacter ) : string[]
input this
separator char
escapeCharacter char
return string[]
        public static string[] SplitEx(this string input, char separator, char escapeCharacter)
        {
            IList<string> values = new List<string>();

            int startOfSegment = 0;
            int index = 0;
            while (index < input.Length)
            {
                index = input.IndexOf(separator, index);
                if (index > 0 && input[index - 1] == escapeCharacter)
                {
                    index++;
                    continue;
                }
                if (index == -1)
                {
                    break;
                }
                values.Add(input.Substring(startOfSegment, index - startOfSegment));
                index++;
                startOfSegment = index;
            }

            values.Add(input.Substring(startOfSegment));
            return values.ToArray();
        } 
    }