コード例 #1
0
        public void Remover(ContaCorrente item)
        {
            int indice = -1;

            // Encontrar o índice do elemento a ser removido em nosso array interno
            for (int i = 0; i < _proximaPosicao; i++)
            {
                ContaCorrente itemAtual = _itens[i];

                if (itemAtual.Equals(item))
                {
                    indice = i;
                    break;
                }
            }

            if (indice == -1)
            {
                throw new IndexOutOfRangeException("Elemento não encontrado");
            }

            // Deslocar todos os itens à direita do item a ser removido uma posição para a esquerda
            for (int i = indice; i < _proximaPosicao - 1; i++)
            {
                _itens[i] = _itens[i + 1];
            }

            // Decrementar a próxima posição livre e atribuir nulo neste item
            _proximaPosicao--;
            _itens[_proximaPosicao] = null;
        }
コード例 #2
0
        public void Remover(ContaCorrente item)
        {
            int indiceItem = -1;

            for (int i = 0; i < _proximaPosicao; i++)
            {
                ContaCorrente itemAtual = _itens[i];

                if (itemAtual.Equals(item))
                {
                    indiceItem = i;
                    break;
                }
            }

            // Quero remover o 0x01

            // [0x03] [0x04] [0x05] [null]
            //                       ^
            //                        ` _proximaPosicao

            for (int i = indiceItem; i < _proximaPosicao - 1; i++)
            {
                _itens[i] = _itens[i + 1];
            }

            _proximaPosicao--;
            _itens[_proximaPosicao] = null;
        }
コード例 #3
0
        public void Remover(ContaCorrente item)
        {
            int indiceItem = -1;//-1 pois não é permitido no array, será usado depois

            //próxima posição pois só precisamos das posições com valores
            for (int i = 0; i < _proximaPosicao; i++)
            {
                //simplifica o if
                ContaCorrente itemAtual = _itens[i];
                //equals sobrescrito para comparar agencia e numero
                if (item.Equals(item))
                {
                    indiceItem = i;
                    break;
                }
            }
            //começa em indiceItem pois é a conta no indice encontrado no for acima
            //será usada para ser removida, vai até a _proximaPosicao = ref nula
            for (int i = indiceItem; i < _proximaPosicao - 1; i++)
            {
                _itens[i] = _itens[i + 1];
            }
            _proximaPosicao--;
            _itens[_proximaPosicao] = null;
        }
コード例 #4
0
        public void Remover(ContaCorrente item)
        {
            // Encontrando índice do item a ser removido
            int indiceItem = -1;

            for (int i = 0; i < _proximaPosicao; i++)
            {
                ContaCorrente itemAtual = _itens[i];

                if (itemAtual.Equals(item))
                {
                    indiceItem = i;
                    break;
                }
            }

            // Lançando uma exceção caso o item não seja encontrado
            if (indiceItem == -1)
            {
                throw new ArgumentException("Item não encontrado na lista!", nameof(item));
            }

            // Deslocando todas posições após o índice do item a ser removido para esquerda
            for (int i = indiceItem; i < _proximaPosicao - 1; i++)
            {
                _itens[i] = _itens[i + 1];
            }

            _proximaPosicao--;
            _itens[_proximaPosicao] = null;
        }
コード例 #5
0
        public void Remover(ContaCorrente item)
        {
            int indiceItem = -1;

            for (int i = 0; i < _proximaPosicao; i++)
            {
                ContaCorrente itemAtual = _itens[i];

                //Busca pela conta que desejamos remover, se achar, sai do for
                if (itemAtual.Equals(item))
                {
                    indiceItem = i;
                    break;
                }
            }

            //percorre a partir do item que desejamos remover e vai movendo as posições superiores uma posição para baixo
            for (int i = indiceItem; i < _proximaPosicao - 1; i++)
            {
                _itens[i] = _itens[i + 1];
            }

            //Decrementa a última posição, pois agora temos uma posição livre
            _proximaPosicao--;

            //Seta a última casa como null pois o valor dela já foi movido para a casa anterior
            _itens[_proximaPosicao] = null;
        }
コード例 #6
0
        //--------------------------------------------------------------------------------------------------------------------------------------------
        public void Remover(ContaCorrente item)
        {
            int indiceItem = -1;

            for (int i = 0; i < _proximaPosicao; i++)
            {
                ContaCorrente itemAtual = _itens[i];

                if (itemAtual.Equals(item))
                {
                    indiceItem = i;
                    break;
                }
            }

            for (int i = indiceItem; i < _proximaPosicao; i++)
            {
                _itens[i] = _itens[i + 1];
            }

            /*Ao remover um indice a ltima posição irá ficar nula. por este motivo nos aprocamos o --
             * aonde estamos decrementando a ultima posição.*/
            _proximaPosicao--;

            /*Neste local, como a ultima posição já tera algum valor dentro dela. pois movemos todos os vetoresum indice para traz.
             * então no ultimo indice o valor sera duplicado. Para evitar isto logo apos mover todos os indices o ultimo rece o valor de Null*/
            _itens[_proximaPosicao] = null;
        }
コード例 #7
0
        public void Remover(ContaCorrente item)
        {
            int indiceItem = -1;

            for (int i = 0; i < _proximaPosicao; i++)
            {
                ContaCorrente itemAtual = _itens[i];

                if (itemAtual.Equals(item))
                {
                    indiceItem = i;
                    break;
                }
            }

            if (indiceItem == -1)
            {
                return;
            }

            for (int i = indiceItem; i < _proximaPosicao - 1; i++)
            {
                _itens[i] = _itens[i + 1];
            }

            _proximaPosicao--;
            _itens[_proximaPosicao] = null;
        }
コード例 #8
0
        public void Remover(ContaCorrente item)
        {
            int indiceItem = -1;

            for (int i = 0; i < _proximaPosicao; i++)
            {
                if (item.Equals(_itens[i]))
                {
                    indiceItem = i;
                    break;
                }
            }

            if (indiceItem == -1)
            {
                Console.WriteLine("Item não pertence à array.");
                return;
            }

            for (int j = indiceItem; j < _proximaPosicao - 1; j++)
            {
                _itens[j] = _itens[j + 1];
            }
            _proximaPosicao--;
            _itens[_proximaPosicao] = null;
            Console.WriteLine("Item removido!");
        }
コード例 #9
0
        public void Remover(ContaCorrente item)
        {
            int indiceItem = -1;

            for (int i = 0; i < _proximaPosicao; i++)
            {
                ContaCorrente itemAtual = _itens[i];

                if (itemAtual.Equals(item))
                {
                    indiceItem = i;
                    break;
                }
            }

            // Quero remover o 0x02

            // [0x01] [0x02] [0x03] [null]
            //                       ^ _proximaPosicao
            //



            for (int i = indiceItem; i < _proximaPosicao - 1; i++)
            {
                _itens[i] = _itens[i + 1];
            }

            Console.WriteLine($"Removendo conta {item.Agencia}, {item.Numero}...");

            _proximaPosicao--;
            _itens[_proximaPosicao] = null;
        }
コード例 #10
0
        static void Main(string[] args)
        {
            string url = "pagina?moedaOrigem=real&moedaDestino=dolar";

            try
            {
                ExtratorValorDeArgumentosURL extrator = new ExtratorValorDeArgumentosURL(url);

                string moedaOrigem = extrator.GetValor("mOedaOrigem");
                Console.WriteLine("Moeda origem: " + moedaOrigem);

                string moedaDestino = extrator.GetValor("MoedaDestino");
                Console.WriteLine("Moeda destino: " + moedaDestino);
                Console.WriteLine("-------------------------------------");

                ContaCorrente conta  = new ContaCorrente(123, 98989);
                ContaCorrente conta2 = new ContaCorrente(113, 98989);
                Console.WriteLine(conta.GetType());
                Console.WriteLine(conta.Equals(conta2));
                Console.WriteLine(conta.GetHashCode()); //46104728
                Console.WriteLine(conta.ToString());
            }
            catch (ArgumentNullException e)
            {
                Console.WriteLine(e.Message);
            }
            catch (ArgumentException e)
            {
                Console.WriteLine(e.Message);
            }


            Console.ReadLine();
        }
コード例 #11
0
        /// <summary>
        /// Remove <see cref="ContaCorrente"/> do armazenamento do sistema
        /// </summary>
        /// <param name="item">Deve der um objeto <see cref="ContaCorrente"/></param>
        public void Remover(ContaCorrente item)
        {
            int indiceItem = -1; // Valor padrão para item não encontrado em arrays;

            // Faz a busca pelo indice do item passado como argumento
            for (int i = 0; i < _proximaPosicao; i++)
            {
                ContaCorrente itemAtual = _itens[i];
                if (itemAtual.Equals(item))
                {
                    indiceItem = i;
                    break;
                }
            }

            // Após achar o item, define a sua posição como a posição do item seguinte
            // E assim continua, até chegar no item anterior a próxima posição
            for (int i = indiceItem; i < _proximaPosicao - 1; i++)
            {
                _itens[i] = _itens[i + 1];
            }

            // Diminui o valor da proximaPosicao em 1 pois um elemento foi excluído
            // E seta como null para não ficar como valor duplicado
            _proximaPosicao--;
            _itens[_proximaPosicao] = null;
        }
コード例 #12
0
        public void remover(ContaCorrente item)
        {
            int indiceItem = 1;

            for (int i = 0; i < _proximaPosicao--; i++)
            {
                ContaCorrente itemAtual = _itens[i];

                if (itemAtual.Equals(item))
                {
                    indiceItem = i;
                }
                _proximaPosicao--;
                _itens[_proximaPosicao] = null;
            }
        }
コード例 #13
0
        public void Remover(ContaCorrente item)
        {
            int indiceItem = -1;

            for (int i = 0; i < _proximaPosicao; i++)
            {
                ContaCorrente itemAtual = _itens[i];

                if (itemAtual.Equals(item))//Comparando equivalencia entre objeetos
                {
                    indiceItem = i;
                    break;
                }
            }
            for (int i = indiceItem; i < _proximaPosicao - 1; i++)
            {
                _itens[i] = _itens[i + 1];
            }
            _proximaPosicao--;
            _itens[_proximaPosicao] = null;
        }
コード例 #14
0
        public void Remover(ContaCorrente item)
        {
            int indiceItem = -1;

            for (int i = 0; i < Tamanho; i++)
            {
                ContaCorrente itemAtual = _itens[i];

                if (itemAtual.Equals(item))
                {
                    indiceItem = i;
                    break;
                }
            }

            for (int i = indiceItem; i < Tamanho - 1; i++)
            {
                _itens[i] = _itens[i + 1];
            }

            Tamanho--;
            _itens[Tamanho] = null;
        }
コード例 #15
0
        public void Remover(ContaCorrente item)
        {
            int indiceItem = -1;

            for (int i = 0; i < _proximaPosicao; i++)
            {
                ContaCorrente contaAtual = _itens[i];
                if (contaAtual.Equals(item))
                {
                    indiceItem = i;
                    break;
                }
            }

            for (int i = indiceItem; i < _proximaPosicao - 1; i++)
            {
                _itens[i] = _itens[i + 1];
            }

            _proximaPosicao--;

            //Resolvendo a última posição
            _itens[_proximaPosicao] = null;
        }
コード例 #16
0
        public void Remover(ContaCorrente item)
        {
            int indiceItem = -1;

            for (int i = 0; i < _proximaPosicao; i++)
            {
                ContaCorrente itemAtual = _itens[i];
                // if (_itens[i] == item)   //Essa comparação não é valida pois compara o valor da referencia da variavel
                //                          //sendo assim nunca seriam igual pois cada uma aponta para um endereço na memoria
                if (itemAtual.Equals(item)) //Utilizando o método Equals, devemos sobrescrever a implementação padrão para a nossa implementação
                {
                    indiceItem = i;
                    break;
                }
            }

            //laço para deslocar o indice para esquerda e setar como nulo o ultimo registro valido
            for (int i = indiceItem; i < _proximaPosicao - 1; i++)
            {
                _itens[i] = _itens[i + 1];
            }
            _proximaPosicao--;
            _itens[_proximaPosicao] = null;
        }
コード例 #17
0
        public void Remover(ContaCorrente item)
        {
            int indiceItem = -1;

            for (int i = 0; i < _proximaPosicao; i++)
            {
                ContaCorrente itemAtual = _itens[i];

                // equivalencia e não igualdade (o Equals está sobrescrito na classe ContaCorrente pq uma conta corrente é equivalente quando tem o mesmo Numero e Agencia)
                if (itemAtual.Equals(item))
                {
                    indiceItem = i;
                    break;
                }
            }

            for (int i = indiceItem; i < (_proximaPosicao - 1); i++)
            {
                _itens[i] = _itens[i + 1];
            }

            _proximaPosicao--;
            _itens[_proximaPosicao] = null;
        }