Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
            }
        }
Ejemplo n.º 3
0
 public MergePointValue()
 {
     Kind     = ValueNodeKind.MergePoint;
     m_values = new ValueNodeHashSet();
 }