public PathComponentEnumerator(string path, PathComparisonOption pathComparisonOption) { _pathComparisonOption = pathComparisonOption; _path = path ?? string.Empty; _index = -1; _count = 0; }
public PathComponent(string path, int index, int count, PathComparisonOption pathComparisonOption) { _path = path; _index = index; _count = count; _pathComparisonOption = pathComparisonOption; }
public CustomPathComparer(PathComparisonOption pathComparisonOption) { _comparison = (pathComparisonOption == PathComparisonOption.CaseInsensitive ? StringComparison.OrdinalIgnoreCase : StringComparison.Ordinal); _comparer = (pathComparisonOption == PathComparisonOption.CaseInsensitive ? StringComparer.OrdinalIgnoreCase : StringComparer.Ordinal); }
public PathComparer(PathComparisonOption option) { _pathComparer = new CustomPathComparer(option); }
private static int CompareSubStrings(string strA, int indexA, int lengthA, string strB, int indexB, int lengthB, PathComparisonOption pathComparisonOption) { // Compare the common prefix of both strings. var comparison = (pathComparisonOption == PathComparisonOption.CaseInsensitive ? StringComparison.OrdinalIgnoreCase : StringComparison.Ordinal); var count = Math.Min(lengthA, lengthB); int result = String.Compare(strA, indexA, strB, indexB, count, comparison); if (result != 0) { return(result); } // String have a common prefix. The shortest string is then considred the // "less than" one. return(lengthA - lengthB); }
public PathComponentSplitter(string path, PathComparisonOption pathComparisonOption) { _path = path; _pathComparisonOption = pathComparisonOption; }