/// <summary> /// Get a suffix. /// </summary> /// <param name="index">Index of path suffix.</param> /// <param name="format">Uri path format.</param> /// <returns>Suffix.</returns> public string GetSuffix(int index, UriPathFormat format) { EnsureFeatureIsSet(); string suffix = _suffixes[index]; switch (format) { case UriPathFormat.Original: return(suffix); case UriPathFormat.Decoded: return(XUri.Decode(suffix)); case UriPathFormat.Normalized: return(XUri.Decode(suffix).ToLowerInvariant()); default: throw new ArgumentException("format"); } }
//--- Methods --- /// <summary> /// Get all segments. /// </summary> /// <param name="format">Encoding format for segments.</param> /// <returns>Array of segments.</returns> public string[] GetSegments(UriPathFormat format) { string[] result; switch(format) { case UriPathFormat.Original: result = _segments; break; case UriPathFormat.Decoded: result = new string[_segments.Length]; for(int i = 0; i < result.Length; ++i) { result[i] = Decode(_segments[i]); } break; case UriPathFormat.Normalized: result = new string[_segments.Length]; for(int i = 0; i < result.Length; ++i) { result[i] = Decode(_segments[i]).ToLowerInvariant(); } break; default: throw new ArgumentException("format"); } return result; }
/// <summary> /// Get one segment. /// </summary> /// <param name="index">Index of segment.</param> /// <param name="format">Encoding format for segments.</param> /// <returns>Segment string.</returns> public string GetSegment(int index, UriPathFormat format) { string result = _segments[index]; switch(format) { case UriPathFormat.Original: break; case UriPathFormat.Decoded: result = Decode(result); break; case UriPathFormat.Normalized: result = Decode(result).ToLowerInvariant(); break; default: throw new ArgumentException("format"); } return result; }