/// <summary>Returns a <see cref="StringComparer"/> that makes case-insensitive comparisons using the specified rule.</summary> public static IrcStringComparer GetComparer(CaseMappingMode mode) { switch (mode) { case CaseMappingMode.ASCII: return(IrcStringComparer.ASCII); case CaseMappingMode.RFC1459: return(IrcStringComparer.RFC1459); case CaseMappingMode.StrictRFC1459: return(IrcStringComparer.StrictRFC1459); default: throw new ArgumentException(nameof(mode) + " is not a valid case mapping mode.", nameof(mode)); } }
internal IrcStringComparer(CaseMappingMode mode) { switch (mode) { case CaseMappingMode.ASCII: maxUppercase = 'Z'; maxLowercase = 'z'; break; case CaseMappingMode.RFC1459: maxUppercase = '^'; maxLowercase = '~'; break; case CaseMappingMode.StrictRFC1459: maxUppercase = ']'; maxLowercase = '}'; break; default: throw new ArgumentException(nameof(mode) + " is not a valid case mapping mode.", nameof(mode)); } }