/// <summary>Get divisions within the specified division bounds.</summary> /// <param name="s">Characters to parse.</param> /// <param name="delimiter">Delimiter to search for.</param> /// <param name="parent">Bounds within which to search.</param> /// <returns>Divisions within the bounds specified.</returns> public static List <StringDivision> GetDivisions(char[] s, char delimiter, StringDivision parent) { unchecked { var divisions = new List <StringDivision>(); var length = 0; var offset = !parent.Valid ? 0 : parent.Offset; var inputLength = !parent.Valid ? s.Length : parent.Length; var endIndex = offset + inputLength; for (var index = offset; index < endIndex; index++) { if (s[index] == delimiter) { divisions.Add(new StringDivision(offset, length)); length = 0; offset = index + 1; } else { length++; } } divisions.Add(new StringDivision(offset, length)); return(divisions); } }
/// <summary>Get divisions within the specified division bounds.</summary> /// <param name="s">Characters to parse.</param> /// <param name="delimiter">Delimiter to search for.</param> /// <param name="parent">Bounds within which to search.</param> /// <returns>Divisions within the bounds specified.</returns> public static List<StringDivision> GetDivisions(char[] s, char delimiter, StringDivision parent) { unchecked { var divisions = new List<StringDivision>(); var length = 0; var offset = !parent.Valid ? 0 : parent.Offset; var inputLength = !parent.Valid ? s.Length : parent.Length; var endIndex = offset + inputLength; for (var index = offset; index < endIndex; index++) { if (s[index] == delimiter) { divisions.Add(new StringDivision(offset, length)); length = 0; offset = index + 1; } else { length++; } } divisions.Add(new StringDivision(offset, length)); return divisions; } }