/// <summary>
        /// Add element into the collection.
        /// </summary>
        /// <param name="capability">The capability to be added to the whitelist.</param>
        /// <exception cref="System.ArgumentNullException">Thrown if <paramref name="capability"/> equals null.</exception>
        public void Add(CapabilityElement capability)
        {
            if (capability == null)
                throw new ArgumentNullException("capability");

            BaseAdd(capability);
        }
        /// <summary>
        /// Add element into the collection.
        /// </summary>
        /// <param name="capability">The capability to be added to the whitelist.</param>
        /// <exception cref="System.ArgumentNullException">Thrown if <paramref name="capability"/> equals null.</exception>
        public void Add(CapabilityElement capability)
        {
            if (capability == null)
            {
                throw new ArgumentNullException("capability");
            }

            BaseAdd(capability);
        }
        /// <summary>
        /// Gets the index of the specific element inside the collection.
        /// </summary>
        /// <param name="capability">The capability whos index is being sought.</param>
        /// <returns>The index of the capability requested.</returns>
        /// <exception cref="System.ArgumentNullException">Thrown if <paramref name="capability"/> equals null.</exception>
        public int IndexOf(CapabilityElement capability)
        {
            if (capability == null)
            {
                throw new ArgumentNullException("capability");
            }

            return(BaseIndexOf(capability));
        }
        /// <summary>
        /// Removes a <see cref="System.Configuration.ConfigurationElement"/> from the collection.
        /// </summary>
        /// <param name="capability">The capability to be removed from the whitelist.</param>
        /// <exception cref="System.ArgumentNullException">Thrown if <paramref name="capability"/> equals null.</exception>
        public void Remove(CapabilityElement capability)
        {
            if (capability == null)
            {
                throw new ArgumentNullException("capability");
            }

            if (BaseIndexOf(capability) >= 0)
            {
                BaseRemove(capability.CapabilityName);
            }
        }
        /// <summary>
        /// Gets the index of the specific element inside the collection.
        /// </summary>
        /// <param name="capability">The capability whos index is being sought.</param>
        /// <returns>The index of the capability requested.</returns>
        /// <exception cref="System.ArgumentNullException">Thrown if <paramref name="capability"/> equals null.</exception>
        public int IndexOf(CapabilityElement capability)
        {
            if (capability == null)
                throw new ArgumentNullException("capability");

            return BaseIndexOf(capability);
        }
        /// <summary>
        /// Removes a <see cref="System.Configuration.ConfigurationElement"/> from the collection.
        /// </summary>
        /// <param name="capability">The capability to be removed from the whitelist.</param>
        /// <exception cref="System.ArgumentNullException">Thrown if <paramref name="capability"/> equals null.</exception>
        public void Remove(CapabilityElement capability)
        {
            if (capability == null)
                throw new ArgumentNullException("capability");

            if (BaseIndexOf(capability) >= 0)
                BaseRemove(capability.CapabilityName);
        }