public override bool Equals(object obj) { ESFlags <T> rhs = obj as ESFlags <T>; if (rhs == null) { return(false); } if (!flags.Equals(rhs.flags)) { return(false); } foreach (string s in strings) { if (!rhs.strings.Contains(s)) { return(false); } } return(true); }