Copiar arreglos
Parte de la sección Fundamentos del Journey de C# de Coddy. Lección 58 de 70.
Para copiar elementos de una matriz a otra, usa Array.Copy. Acepta cinco argumentos:
Array.Copy(source, sourceIndex, destination, destinationIndex, length);Toma length elementos de source, empezando en sourceIndex, y los escribe en destination, empezando en destinationIndex. La matriz de destino ya debe existir y ser lo bastante grande.
El último argumento es un recuento: cuántos elementos copiar, no dónde detenerse.
int[] scores = {90, 75, 60, 85};
int[] firstTwo = new int[2];
Array.Copy(scores, 0, firstTwo, 0, 2);
// firstTwo será {90, 75}destinationIndex es el índice donde se coloca el primer elemento copiado. Usar source.Length como cantidad copia toda la matriz, independientemente de su tamaño:
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 un array después de otro, copia el segundo en la posición donde termina el primero. Esa posición es el Length del primer 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}Cuando ambos arreglos empiezan en el índice 0, hay una forma más corta, 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}Desafío
FácilCrea un método llamado AddToEnd que reciba un arreglo de cadenas y una cadena item. Devuelve un nuevo arreglo que contiene todos los elementos del arreglo, en el mismo orden, con item añadido al final.
Por ejemplo, AddToEnd(new string[] {"a", "b", "c"}, "d") devuelve ["a", "b", "c", "d"].
Usa Array.Copy() para copiar los elementos en el nuevo arreglo.
Formato de entrada (2 líneas):
- Línea 1: los elementos del arreglo separados por comas (p. ej.,
a,b,c) - Línea 2: el elemento que se va a añadir (p. ej.,
d)
Formato de salida: los elementos del nuevo arreglo separados por una coma y un espacio (p. ej., a, b, c, d)
Pruébalo tú mismo
using System;
public class Program {
public static string[] AddToEnd(string[] arr, string item) {
// Escribe el código aquí
}
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 lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Fundamentos
4Operadores Parte 1
Operadores aritméticosOperador de móduloIncremento/DecrementoPost-incremento/decrementoAtajos aritméticos7Entrada y Salida Básica
Salida BásicaInterpolación de CadenasLectura de EntradaParseoResumen - Hasta 120Resumen - Verdadero o Falso5Operadores Parte 2
Operadores de comparaciónOperadores lógicos Parte 1Operadores lógicos Parte 2Repaso - Lógica simpleOperadores lógicos Parte 311Fundamentos de los arreglos
Declarar arreglosAcceder a los elementosModificar arreglosCopiar arreglosMétodos de arreglosRepaso: arreglo de productosEditar repaso: arreglo invertido3Variables Parte 2
VarConstantesConvenciones de NomenclaturaResumen - Inicializar VariablesConversión de Tipos6Toma de decisiones
Sentencia IfIf - ElseSentencia SwitchOperador ternarioResumen - If ElseIf - Else anidadosPractica por tu cuenta: Compilador de C# online