示例#1
0
        /// <summary>
        /// Reajusta os indeces dos elementos da lista
        /// </summary>
        private void RefactoreIndex()
        {
            Elemento aux = this.prim;

            while (aux != null)
            {
                if (null != aux.Prox && aux.GetIndex() != aux.Prox.GetIndex() - 1)
                {
                    aux = aux.Prox;
                    while (aux != null)
                    {
                        aux.SetIndex(aux.GetIndex() - 1);
                        aux = aux.Prox;
                    }
                    return;
                }
                aux = aux.Prox;
            }
        }
示例#2
0
        /// <summary>
        /// Retorna o index de um elemento
        /// </summary>
        /// <param name="obj"></param>
        /// <returns></returns>
        public int GetIndexOf(object obj)
        {
            Elemento aux = prim;

            while (aux != null && aux.GetDado() != obj)
            {
                aux = aux.Prox;
            }
            return(aux.GetIndex());
        }
示例#3
0
        /// <summary>
        /// Retorna um objeto pelo seu index
        /// </summary>
        /// <param name="val"></param>
        /// <returns></returns>
        private object GetByIndex(int val)
        {
            Elemento aux = prim;

            if (val >= this.count || val < 0)
            {
                throw new InvalidIndexException(this.ToString() + ", line 56");
            }
            else if (aux == null)
            {
                throw new NullReferenceException(this.ToString() + ", line 57");
            }
            while (aux != null && val != aux.GetIndex())
            {
                aux = aux.Prox;
            }
            return(aux.GetDado());
        }
示例#4
0
        /// <summary>
        /// Retorna um elemento pelo seu index
        /// </summary>
        /// <param name="val"></param>
        /// <returns></returns>
        private Elemento GetElementoByIndex(int val)
        {
            Elemento aux = this.prim;

            if (val > this.count || val < 0)
            {
                throw new IndexOutOfRangeException(this.ToString() + ", line 72");
            }
            else if (aux == null)
            {
                throw new NullReferenceException(this.ToString() + ", line 73");
            }

            while (val != aux.GetIndex())
            {
                aux = aux.Prox;
            }
            return(aux);
        }