예제 #1
0
 /// <summary>
 /// Compare two string ids
 /// </summary>
 public int Compare(StringId x, StringId y)
 {
     return
         (!x.IsValid && !y.IsValid ? 0 :               // both invalid               ==> equal
          !x.IsValid && y.IsValid ? 2 :                // first invalid second valid  ==> pick an order
          x.IsValid && !y.IsValid ? -2 :               // first valid second invalid ==> pick the oposite order
          m_stringTable.CompareCaseInsensitive(x, y)); // both valid    ==> delegate
 }
예제 #2
0
        /// <summary>
        /// Performs a case insensitive ordinal comparison against another PathAtom
        /// </summary>
        /// <remarks>
        /// Note that it is only meaningful to compare PathAtoms created against the same StringTable.
        /// </remarks>
        public int CaseInsensitiveCompareTo(StringTable stringTable, PathAtom other)
        {
            Contract.RequiresNotNull(stringTable);

            return(stringTable.CompareCaseInsensitive(StringId, other.StringId));
        }