Esempio n. 1
0
        /// <summary>
        /// 
        /// </summary>
        /// <param name="item"></param>
        public void Remove(T item)
        {
            int index = IndexOf(item);
            if (index < 0)
                throw new ArgumentException(
                    "Cannot remove the specified item because it was not found in the specified Collection.");

            RemoveAt(index);
        }
Esempio n. 2
0
 /// <summary>
 /// 
 /// </summary>
 /// <param name="array"></param>
 public UndoBuffer(T[] array)
 {
     AddRange(array);
 }
Esempio n. 3
0
 /// <summary>
 /// 
 /// </summary>
 /// <param name="item"></param>
 /// <returns></returns>
 public int IndexOf(T item)
 {
     for (int i = 0; i < m_count; ++i)
         if (m_array[i] == (item))
             return i;
     return - 1;
 }
Esempio n. 4
0
        /// <summary>
        /// 
        /// </summary>
        /// <param name="position"></param>
        /// <param name="item"></param>
        public void Insert(int position, T item)
        {
            ValidateIndex(position, true); // throws

            if (NeedsGrowth())
                Grow();

            ++m_version;
            // for (int i=m_count; i > position; --i) m_array[i] = m_array[i-1];
            Array.Copy(m_array, position, m_array, position + 1, m_count - position);

            m_array[position] = item;
            m_count++;
        }
Esempio n. 5
0
        /// <summary>
        /// 
        /// </summary>
        /// <param name="array"></param>
        /// <param name="start"></param>
        public void CopyTo(T[] array, int start)
        {
            if (m_count > array.GetUpperBound(0) + 1 - start)
                throw new ArgumentException(
                    "Destination array was not long enough.");

            // for (int i=0; i < m_count; ++i) array[start+i] = m_array[i];
            Array.Copy(m_array, 0, array, start, m_count);
        }
Esempio n. 6
0
 /// <summary>
 /// 
 /// </summary>
 /// <param name="array"></param>
 public void CopyTo(T[] array)
 {
     this.CopyTo(array, 0);
 }
Esempio n. 7
0
 /// <summary>
 /// 
 /// </summary>
 /// <param name="item"></param>
 /// <returns></returns>
 public bool Contains(T item)
 {
     return ((IndexOf(item) == - 1) ? false : true);
 }
Esempio n. 8
0
        /// <summary>
        /// 
        /// </summary>
        /// <param name="array"></param>
        public void AddRange(T[] array)
        {
            // for (int i=0; i < array.Length; ++i) Add(array[i]);

            ++m_version;

            Capacity += array.Length;
            Array.Copy(array, 0, this.m_array, m_count, array.Length);
            m_count += array.Length;
        }
Esempio n. 9
0
        /// <summary>
        /// 
        /// </summary>
        /// <param name="item"></param>
        /// <returns></returns>
        public int Add(T item)
        {
            if (NeedsGrowth())
                Grow();

            ++m_version;
            m_array[m_count] = item;

            m_count++;

            while (this.Count > this.MaxSize)
            {
                this.RemoveAt(0);
            }

            return m_count;
        }