Copiando arrays
Parte da seção Fundamentos do Journey de C# da Coddy. Lição 58 de 70.
Para copiar elementos de um array para outro, use Array.Copy. Ele recebe cinco argumentos:
Array.Copy(source, sourceIndex, destination, destinationIndex, length);Ele copia length elementos de source, começando em sourceIndex, e os grava em destination, começando em destinationIndex. O array de destino já deve existir e ser grande o suficiente.
O último argumento é uma contagem: quantos elementos copiar, não onde parar.
int[] scores = {90, 75, 60, 85};
int[] firstTwo = new int[2];
Array.Copy(scores, 0, firstTwo, 0, 2);
// firstTwo será {90, 75}destinationIndex é onde o primeiro elemento copiado é colocado. Usar source.Length como quantidade copia o array inteiro, independentemente do tamanho dele:
int[] source = {1, 2, 3};
int[] destination = new int[6];
Array.Copy(source, 0, destination, 3, source.Length);
// destination será {0, 0, 0, 1, 2, 3}Para colocar um array depois de outro, copie o segundo para a posição em que o primeiro termina. Essa posição é o Length do primeiro array:
int[] first = {1, 2};
int[] second = {7, 8, 9};
int[] all = new int[first.Length + second.Length];
Array.Copy(first, 0, all, 0, first.Length);
Array.Copy(second, 0, all, first.Length, second.Length);
// all será {1, 2, 7, 8, 9}Quando os dois arrays começam no índice 0, há uma forma mais curta, Array.Copy(source, destination, length):
int[] source = {4, 5, 6, 7};
int[] destination = new int[3];
Array.Copy(source, destination, 3);
// destination será {4, 5, 6}Desafio
FácilCrie um método chamado AddToEnd que recebe um array de strings e uma string item. Ele retorna um novo array que contém todos os elementos do array, na mesma ordem, com item adicionado ao final.
Por exemplo, AddToEnd(new string[] {"a", "b", "c"}, "d") retorna ["a", "b", "c", "d"].
Use Array.Copy() para copiar os elementos para o novo array.
Formato de entrada (2 linhas):
- Linha 1: os elementos do array separados por vírgulas (por exemplo,
a,b,c) - Linha 2: o item a ser adicionado (por exemplo,
d)
Formato de saída: os elementos do novo array separados por vírgula e espaço (por exemplo, a, b, c, d)
Experimente você mesmo
using System;
public class Program {
public static string[] AddToEnd(string[] arr, string item) {
// Escreva o código aqui
}
public static void Main(string[] args) {
string[] arr = Console.ReadLine().Split(',');
string item = Console.ReadLine();
string[] result = AddToEnd(arr, item);
Console.WriteLine(string.Join(", ", result));
}
}Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Fundamentos
4Operadores Parte 1
Operadores AritméticosOperador de MóduloIncremento/DecrementoPós-incremento/DecrementoAtalhos Aritméticos7IO Básico
Saída BásicaInterpolação de StringsLeitura de EntradaParseRevisão - Até 120Revisão - True ou False5Operadores Parte 2
Operadores de ComparaçãoOperadores Lógicos Parte 1Operadores Lógicos Parte 2Recapitulação - Lógica SimplesOperadores Lógicos Parte 311Noções básicas de arrays
Declarando arraysAcessando elementosModificando arraysCopiando arraysMétodos de arraysRevisão - Array de produtosEditar revisão - Array invertido3Variáveis Parte 2
VarConstantesConvenções de NomenclaturaRecapitulação - Inicializar VariáveisType Casting6Tomada de Decisão
Estrutura IfIf - ElseEstrutura SwitchOperador TernárioRevisão - If ElseIf - Else AninhadoPratique por conta própria: Compilador de C# online