Adicionar elemento em uma posição específica do array.

Segundo a Microsoft, array fornece métodos para criar, manipular, pesquisar e classificar matrizes, servindo assim como a classe base para todas as matrizes no Common Language Runtime.

Arrays são estáticos em tamanho

Ao contrário das classes nos System.Collections, array tem uma capacidade fixa. Para aumentar a capacidade, você deve criar um array com a capacidade necessária, copiar os elementos do antigo para o novo e excluir o antigo.

Adicionar elemento a um Array

Para adicionar um elemento em um array devemos criar um novo e populá-lo com as informações do antigo colocando na posição informada o item fornecido.

Exemplo:

using System;
using System.Collections.Generic;
namespace AddElementArray
{
    class Program
    {
        static void Main(string[] args)
        {
            var dealingWithArray = new DealingWithArray();
            Console.WriteLine("Origin Array");
            string[] arrayString = { "Item 1", "Item 2", "Item 3", "Item 4", "Item 5" };
            for (var i = 0; i < arrayString.Length; i++)
            {
                Console.Write(arrayString[i] + " ");
            }
            Console.WriteLine();
            Console.WriteLine("Add 'Item X'");
            string[] arrayStringNovo = dealingWithArray.AddItemInPosition_CreateNewArray("Item X", arrayString, 3);
            for (var i = 0; i < arrayStringNovo.Length; i++)
            {
                Console.Write(arrayStringNovo[i] + " ");
            }
            Console.WriteLine();
        }
    }
    public class DealingWithArray
    {
        public string[] AddItemInPosition_CreateNewArray(string newItem, string[] arrayString, int position)
        {
            string[] newArrayString = new string[arrayString.Length + 1];
            for (var i = 0; i < newArrayString.Length; i++)
            {
                if (i == position)
                {
                    newArrayString[i] = newItem;
                }
                else
                {
                    if (i > position)
                    {
                        newArrayString[i] = arrayString[i - 1];
                    }
                    else
                    {
                        newArrayString[i] = arrayString[i];
                    }
                }
            }
            return newArrayString;
        }
    }
}

Usando List

O mesmo resultado pode ser obtido fazendo a conversão para List. Esta classe representa uma lista fortemente tipada de objetos que podem ser acessados por índice. Fornece métodos para pesquisar, classificar e manipular listas [Microsoft].

Quando convertemos o array para uma lista, temos acesso a todos os métodos disponíveis. Com isso podemos adicionar o elemento na posição e posteriormente converter a lista novamente para array.

Exemplo: apenas o método que adiciona o item.

    public class DealingWithArray
    {
        public string[] AddItemInPosition_UsingList(string newItem, string[] arrayString, int position)
        {
            var list = new List<string>(arrayString);
            list.Insert(position, newItem);
            return list.ToArray();
        }
    }

Nota

Usar ArrayList é desencorajado segundo a documentação oficial. Por este motivo não levado em consideração neste artigo.

Qualquer dúvida ou dicas, entre em contato: leandrolt@gmail.com

Principais referências

– https://docs.microsoft.com/pt-br/dotnet/api/system.array
– https://docs.microsoft.com/pt-br/dotnet/api/system.collections.generic.list-1
– https://docs.microsoft.com/pt-br/dotnet/csharp/programming-guide/arrays/single-dimensional-arrays

Leave a Reply

Your email address will not be published. Required fields are marked *