/// <summary>
        /// Determines if the item belongs to this collection.
        /// </summary>
        /// <param name="item">The object to locate in the collection. The value can be a NULL reference (Nothing in Visual Basic).</param>
        /// <returns>True if item is found in the collection; otherwise False.</returns>
        public bool Contains(GenericTreeTableWithCounterEntry <V, C> item)
        {
            if (item == null)
            {
                return(false);
            }

            return(thisTree.Contains(item));
        }
        GenericTreeTableWithCounterEntry <V, C> LookupOrCreateEntry(V item)
        {
            var entry = GetTreeTableEntry(item);

            if (entry == null || entry.Tree == null || entry.Tree != thisGenericTree.InternalTree)
            {
                entry = new GenericTreeTableWithCounterEntry <V, C>(thisGenericTree, item);
                item.SetTreeTableEntry(thisGenericTree.Identifier, entry);
            }
            return(entry);
        }
 /// <summary>
 /// Returns the previous entry in the collection for which CountVisible counter is not empty.
 /// </summary>
 /// <param name="current">The current.</param>
 /// <returns></returns>
 public GenericTreeTableWithCounterEntry <V, C> GetPreviousVisibleEntry(GenericTreeTableWithCounterEntry <V, C> current)
 {
     return((GenericTreeTableWithCounterEntry <V, C>)thisTree.GetPreviousVisibleEntry(current));
 }
 /// <summary>
 /// Returns the previous entry in the collection for which the specific counter is not empty.
 /// A cookie defines the type of counter.
 /// </summary>
 /// <param name="current">The current.</param>
 /// <param name="cookie">The cookie.</param>
 /// <returns></returns>
 public GenericTreeTableWithCounterEntry <V, C> GetPreviousNotEmptyCounterEntry(GenericTreeTableWithCounterEntry <V, C> current, int cookie)
 {
     return((GenericTreeTableWithCounterEntry <V, C>)thisTree.GetPreviousNotEmptyCounterEntry(current, cookie));
 }
 void ICollection <GenericTreeTableWithCounterEntry <V, C> > .Add(GenericTreeTableWithCounterEntry <V, C> item)
 {
     Add(item);
 }
 /// <summary>
 /// Adds a value to the end of the collection.
 /// </summary>
 /// <param name="value">The item to be added to the end of the collection. The value must not be a NULL reference (Nothing in Visual Basic). </param>
 /// <returns>The zero-based collection index at which the value has been added.</returns>
 public int Add(GenericTreeTableWithCounterEntry <V, C> item)
 {
     return(thisTree.Add(item));
 }
 /// <summary>
 /// Returns the zero-based index of the occurrence of the item in the collection.
 /// </summary>
 /// <param name="value">The item to locate in the collection. The value can be a NULL reference (Nothing in Visual Basic). </param>
 /// <returns>The zero-based index of the occurrence of the item within the entire collection, if found; otherwise -1.</returns>
 public int IndexOf(GenericTreeTableWithCounterEntry <V, C> item)
 {
     return(thisTree.IndexOf(item));
 }
 /// <summary>
 /// Removes the specified item from the collection.
 /// </summary>
 /// <param name="item">The item to remove from the collection. If the value is NULL or the item is not contained
 /// in the collection, the method will do nothing.</param>
 public bool Remove(GenericTreeTableWithCounterEntry <V, C> item)
 {
     return(thisTree.Remove(item));
 }
 /// <summary>
 /// Inserts an item into the collection at the specified index.
 /// </summary>
 /// <param name="index">The zero-based index at which the item should be inserted.</param>
 /// <param name="item">The item to insert. The value must not be a NULL reference (Nothing in Visual Basic). </param>
 public void Insert(int index, GenericTreeTableWithCounterEntry <V, C> item)
 {
     thisTree.Insert(index, item);
 }
 public GenericTreeTableWithCounterEntry <V, C> AddIfNotExists(object key, GenericTreeTableWithCounterEntry <V, C> entry)
 {
     return((GenericTreeTableWithCounterEntry <V, C>)thisTree.AddIfNotExists(key, entry));
 }
 /// <summary>
 /// Optimized access to a subsequent entry.
 /// </summary>
 /// <param name="current"></param>
 /// <returns></returns>
 public GenericTreeTableWithCounterEntry <V, C> GetNextEntry(GenericTreeTableWithCounterEntry <V, C> current)
 {
     return((GenericTreeTableWithCounterEntry <V, C>)thisTree.GetNextEntry(current));
 }