/// <summary>
        /// Returns the zero-based index of the first occurrence
        /// of the specified <see cref="ISchemaEditorNode"/> in the
        /// <see cref="SchemaEditorNodeCollection"/>.
        /// </summary>
        /// <param name="value">
        /// The <see cref="ISchemaEditorNode"/> object
        /// to locate in the <see cref="SchemaEditorNodeCollection"/>.
        /// This argument may be a null reference.
        /// </param>
        /// <returns>
        /// The zero-based index of the first occurrence of
        /// <paramref name="value"/> in the <see cref="SchemaEditorNodeCollection"/>,
        /// if found; otherwise, -1.</returns>
        /// <remarks>
        /// Please refer to <see cref="ArrayList.IndexOf"/> for details.
        /// </remarks>
        public int IndexOf(ISchemaEditorNode value)
        {
            int count = _data.Count;
            ISchemaEditorNode[] items = _data.Items;

            if ((object) value == null)
            {
                for (int i = 0; i < count; i++)
                {
                    if ((object) items[i] == null)
                        return i;
                }

                return -1;
            }

            for (int i = 0; i < count; i++)
            {
                if (value.Equals(items[i]))
                    return i;
            }

            return -1;
        }