HOWTO · Csharp

Anexar ao Array em C#

Existem 2 métodos principais que podem ser usados para redimensionar um array em C#, o list.Add() com as funções list.ToArray() e a função Array.Resize().

Este tutorial apresentará métodos para anexar elementos a um array em C#.

Redimensione um array com listas em C#

Infelizmente, por padrão, não podemos alterar dinamicamente o tamanho de um array. Se temos um array e queremos acrescentar mais valores ao mesmo array, temos que contar com algumas abordagens definidas pelo usuário para redimensionar o array. Podemos redimensionar um array primeiro convertendo a matriz em uma lista com a função ToList() em C#. Podemos então adicionar mais valores à lista com a função List.Add() e converter a lista de volta em um array usando a função ToArray() em C#. O exemplo de código a seguir nos mostra como podemos redimensionar um array usando listas em C#.

using System;
using System.Collections.Generic;
using System.Linq;

namespace Resize_Array {
  class Program {
    static void method1() {
      string[] arr = new string[] { "Hi" };
      List<string> ls = arr.ToList();
      ls.Add("Hello");
      ls.Add("World");
      arr = ls.ToArray();
      foreach (var e in arr) {
        Console.WriteLine(e);
      }
    }
    static void Main(string[] args) {
      method1();
    }
  }
}

Resultado:

Hi Hello World

Convertemos a matriz arr para a lista ls com a função arr.ToList(). Adicionamos novos elementos ao ls e o convertemos de volta em um array com a função ls.ToArray() em C#.

Redimensione um array com o método Array.Resize() em C#

Também podemos usar o método Array.Resize() para atingir o mesmo objetivo em C#. O método Array.Resize() leva o ponteiro para um array como um parâmetro e altera o tamanho dessa matriz para um número especificado. O exemplo de código a seguir nos mostra como podemos redimensionar um array com a função Array.Resize() em C#.

using System;
using System.Collections.Generic;

namespace Resize_Array {
  class Program {
    static void method2() {
      string[] arr = new string[] { "Hi" };

      Array.Resize(ref arr, 3);
      arr[1] = "Hello";
      arr[2] = "World";
      foreach (var e in arr) {
        Console.WriteLine(e);
      }
    }
    static void Main(string[] args) {
      method2();
    }
  }
}

Resultado:

Hi Hello World

Redimensionamos a matriz arr com o método Array.Resize() em C#. Passamos a referência ao arr e o tamanho desejado do arr nos parâmetros do método Array.Resize(). Anexamos novos elementos ao array arr e exibimos o array ao usuário.

Ambos os métodos discutidos acima podem ser usados ​​para anexar elementos a um array. Mas para alocação de memória dinâmica, a estrutura de dados da lista deve ser usada em vez da estrutura de dados do array.