public override bool Equals(object other) { ValueNodeHashSet otherSet = other as ValueNodeHashSet; if (otherSet == null) { return(false); } if (otherSet.Count != Count) { return(false); } IEnumerator <ValueNode> thisEnumerator = this.GetEnumerator(); IEnumerator <ValueNode> otherEnumerator = otherSet.GetEnumerator(); for (int i = 0; i < Count; i++) { thisEnumerator.MoveNext(); otherEnumerator.MoveNext(); if (!thisEnumerator.Current.Equals(otherEnumerator.Current)) { return(false); } } return(true); }
private MergePointValue(ValueNode one, ValueNode two) { Kind = ValueNodeKind.MergePoint; m_values = new ValueNodeHashSet(); if (one.Kind == ValueNodeKind.MergePoint) { MergePointValue mpvOne = (MergePointValue)one; foreach (ValueNode value in mpvOne.Values) { m_values.Add(value); } } else { m_values.Add(one); } if (two.Kind == ValueNodeKind.MergePoint) { MergePointValue mpvTwo = (MergePointValue)two; foreach (ValueNode value in mpvTwo.Values) { m_values.Add(value); } } else { m_values.Add(two); } }
public MergePointValue() { Kind = ValueNodeKind.MergePoint; m_values = new ValueNodeHashSet(); }