Skip to content

Instantly share code, notes, and snippets.

@dotnetchris
Last active August 30, 2016 19:20
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dotnetchris/75f2cf6137b8e0e37961a3301e1dad5b to your computer and use it in GitHub Desktop.
Save dotnetchris/75f2cf6137b8e0e37961a3301e1dad5b to your computer and use it in GitHub Desktop.
Allows you to treat strings as case insensitive
struct OrdinalIgnoreCaseString : IEquatable<OrdinalIgnoreCaseString>, IEquatable<string> {
string _str;
public OrdinalIgnoreCaseString(string str) {
_str = str;
}
public static implicit operator OrdinalIgnoreCaseString(string str) {
return new OrdinalIgnoreCaseString(str);
}
public static explicit operator string(OrdinalIgnoreCaseString str) {
return str._str;
}
public bool Equals(string other) {
return _str.Equals(other, StringComparison.OrdinalIgnoreCase);
}
public bool Equals(OrdinalIgnoreCaseString other) {
return _str.Equals(other._str, StringComparison.OrdinalIgnoreCase);
}
}
@dotnetchris
Copy link
Author

Source @KrzysztofCwalina on https://github.com/dotnet/corefx/issues/649 figured this could be better long lived.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment