/// <summary> /// Copies this list into another KeyboardrActionList /// </summary> /// <param name="array">Target list</param> /// <param name="start">Start index</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); }
/// <summary> /// Remove a specified item from the list /// </summary> /// <param name="item">Item to remove</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); }
/// <summary> /// Returns the index of a specified KeyboardAction /// </summary> /// <param name="item">KeyboardAction to find</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); }
/// <summary> /// Adds a KeyboardAction to the list /// </summary> /// <param name="item"></param> /// <returns></returns> public int Add(T item) { if (NeedsGrowth()) { Grow(); } ++m_version; m_array[m_count] = item; return(m_count++); }
/// <summary> /// Inserts a KeyboardAction at a specified position /// </summary> /// <param name="position">Insert position</param> /// <param name="item">Item to insert</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++; }
/// <summary> /// Returns true if the list contains the specified KeyboardAction /// </summary> /// <param name="item">KeyboardAction to find</param> /// <returns></returns> public bool Contains(T item) { return((IndexOf(item) == -1) ? false : true); }
/// <summary> /// Copies this list into another KeyboardrActionList /// </summary> /// <param name="array">Target list</param> public void CopyTo(T[] array) { this.CopyTo(array, 0); }
/// <summary> /// Add the content of a KeyboardAction array to this list /// </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; }
/// <summary> /// /// </summary> /// <param name="array"></param> public KeyboardActionList(T[] array) { AddRange(array); }
/// <summary> /// Remove a specified item from the list /// </summary> /// <param name="item">Item to remove</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); }
/// <summary> /// Inserts a KeyboardAction at a specified position /// </summary> /// <param name="position">Insert position</param> /// <param name="item">Item to insert</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++; }
/// <summary> /// Returns the index of a specified KeyboardAction /// </summary> /// <param name="item">KeyboardAction to find</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; }
/// <summary> /// Returns true if the list contains the specified KeyboardAction /// </summary> /// <param name="item">KeyboardAction to find</param> /// <returns></returns> public bool Contains(T item) { return ((IndexOf(item) == -1) ? false : true); }
/// <summary> /// Adds a KeyboardAction to the list /// </summary> /// <param name="item"></param> /// <returns></returns> public int Add(T item) { if (NeedsGrowth()) Grow(); ++m_version; m_array[m_count] = item; return m_count++; }