public virtual System.Collections.IList Search(System.IComparable key)
        {
            int  position     = GetPositionOfKey(key);
            bool keyIsHere    = position > 0;
            int  realPosition = -1;

            if (keyIsHere)
            {
                realPosition = position - 1;
                System.Collections.IList value = GetValueAt(realPosition);
                return(value);
            }
            else
            {
                if (IsLeaf())
                {
                    // key is not here and node is leaf
                    return(null);
                }
            }
            realPosition = -position - 1;
            NeoDatis.Btree.IBTreeNodeMultipleValuesPerKey node = (NeoDatis.Btree.IBTreeNodeMultipleValuesPerKey
                                                                  )GetChildAt(realPosition, true);
            return(node.Search(key));
        }
 public virtual System.Collections.IList Search(System.IComparable key)
 {
     NeoDatis.Btree.IBTreeNodeMultipleValuesPerKey theRoot = (NeoDatis.Btree.IBTreeNodeMultipleValuesPerKey
                                                              )GetRoot();
     return(theRoot.Search(key));
 }