/// <summary>
        ///   Determines whether this instance contains the specified item.
        /// </summary>
        ///
        /// <param name="item">The object to locate in the collection.
        ///   The value can be null for reference types.</param>
        ///
        /// <returns>
        ///   <c>true</c> if the item is found in the collection; otherwise, <c>false</c>.
        /// </returns>
        ///
        public bool Contains(KDTreeNodeDistance <T> item)
        {
            int i = Array.IndexOf(positions, item.Node);

            if (i == -1)
            {
                return(false);
            }

            return(distances[i] == item.Distance);
        }
 /// <summary>
 ///   Compares this instance to another node, returning an integer
 ///   indicating whether this instance has a distance that is less
 ///   than, equal to, or greater than the other node's distance.
 /// </summary>
 ///
 public int CompareTo(KDTreeNodeDistance <T> other)
 {
     return(distance.CompareTo(other.distance));
 }
 /// <summary>
 ///   Determines whether the specified <see cref="KDTreeNodeDistance{T}"/>
 ///   is equal to this instance.
 /// </summary>
 ///
 /// <param name="other">The <see cref="KDTreeNodeDistance{T}"/> to compare
 ///   with this instance.</param>
 ///
 /// <returns>
 ///   <c>true</c> if the specified <see cref="KDTreeNodeDistance{T}"/> is
 ///   equal to this instance; otherwise, <c>false</c>.
 /// </returns>
 ///
 public bool Equals(KDTreeNodeDistance <T> other)
 {
     return(distance == other.distance && node == other.node);
 }
 /// <summary>
 ///   Not supported.
 /// </summary>
 ///
 public bool Remove(KDTreeNodeDistance <T> item)
 {
     throw new NotSupportedException();
 }
 /// <summary>
 ///   Adds the specified item to this collection.
 /// </summary>
 ///
 /// <param name="item">The item.</param>
 ///
 public void Add(KDTreeNodeDistance <T> item)
 {
     Add(item.Node, item.Distance);
 }