public override bool Equals(object o) { if (this == o) { return(true); } if (o == null || GetType() != o.GetType()) { return(false); } SearchGroup <TGroupValue> that = (SearchGroup <TGroupValue>)o; if (GroupValue == null) { if (that.GroupValue != null) { return(false); } } else if (!GroupValue.Equals(that.GroupValue)) { return(false); } return(true); }