System.Uri.Compare C# (CSharp) Method

Compare() public static method

public static Compare ( Uri uri1, Uri uri2, UriComponents partsToCompare, UriFormat compareFormat, System.StringComparison comparisonType ) : int
uri1 Uri
uri2 Uri
partsToCompare UriComponents
compareFormat UriFormat
comparisonType System.StringComparison
return int
        public static int Compare(Uri uri1, Uri uri2, UriComponents partsToCompare, UriFormat compareFormat,
            StringComparison comparisonType)
        {
            if ((object)uri1 == null)
            {
                if (uri2 == null)
                    return 0; // Equal
                return -1;    // null < non-null
            }
            if ((object)uri2 == null)
                return 1;     // non-null > null

            // a relative uri is always less than an absolute one
            if (!uri1.IsAbsoluteUri || !uri2.IsAbsoluteUri)
                return uri1.IsAbsoluteUri ? 1 : uri2.IsAbsoluteUri ? -1 : string.Compare(uri1.OriginalString,
                    uri2.OriginalString, comparisonType);

            return string.Compare(
                                    uri1.GetParts(partsToCompare, compareFormat),
                                    uri2.GetParts(partsToCompare, compareFormat),
                                    comparisonType
                                  );
        }

Usage Example

Example #1
0
        /// <summary>Determines whether <paramref name="baseUri" /> is a base URI for <paramref name="relativeUri" />.</summary>
        /// <returns>true if <paramref name="baseUri" /> is a base URI for <paramref name="relativeUri" />; otherwise, false.</returns>
        /// <param name="baseUri">The base URI.</param>
        /// <param name="relativeUri">The URI to test.</param>
        protected internal virtual bool IsBaseOf(Uri baseUri, Uri relativeUri)
        {
            if (Uri.Compare(baseUri, relativeUri, UriComponents.Scheme | UriComponents.UserInfo | UriComponents.Host | UriComponents.Port, UriFormat.Unescaped, StringComparison.InvariantCultureIgnoreCase) != 0)
            {
                return(false);
            }
            string localPath = baseUri.LocalPath;
            int    length    = localPath.LastIndexOf('/') + 1;

            return(string.Compare(localPath, 0, relativeUri.LocalPath, 0, length, StringComparison.InvariantCultureIgnoreCase) == 0);
        }
All Usage Examples Of System.Uri::Compare