Копирование массивов
Часть раздела Основы путешествия по C# на Coddy. Урок 58 из 70.
Чтобы скопировать элементы из одного массива в другой, используйте Array.Copy. Он принимает пять аргументов:
Array.Copy(source, sourceIndex, destination, destinationIndex, length);Он берёт length элементов из source, начиная с sourceIndex, и записывает их в destination, начиная с destinationIndex. Массив назначения должен уже существовать и быть достаточно большим.
Последний аргумент — это количество: сколько элементов нужно скопировать, а не позиция, на которой нужно остановиться.
int[] scores = {90, 75, 60, 85};
int[] firstTwo = new int[2];
Array.Copy(scores, 0, firstTwo, 0, 2);
// firstTwo будет содержать {90, 75}destinationIndex — это индекс, по которому окажется первый скопированный элемент. Если в качестве количества использовать source.Length, скопируется весь массив независимо от его размера:
int[] source = {1, 2, 3};
int[] destination = new int[6];
Array.Copy(source, 0, destination, 3, source.Length);
// destination будет содержать {0, 0, 0, 1, 2, 3}Чтобы разместить один массив после другого, скопируй второй массив в позицию, где заканчивается первый. Эта позиция — Length первого массива:
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 будет содержать {1, 2, 7, 8, 9}Когда оба массива начинаются с индекса 0, есть более короткая форма: Array.Copy(source, destination, length):
int[] source = {4, 5, 6, 7};
int[] destination = new int[3];
Array.Copy(source, destination, 3);
// destination будет содержать {4, 5, 6}Задание
ЛегкоСоздай метод с именем AddToEnd, который принимает массив строк и строку item. Он возвращает новый массив, содержащий все элементы массива в том же порядке, с добавленной в конец строкой item.
Например, AddToEnd(new string[] {"a", "b", "c"}, "d") возвращает ["a", "b", "c", "d"].
Используй Array.Copy(), чтобы скопировать элементы в новый массив.
Формат ввода (2 строки):
- Строка 1: элементы массива, разделённые запятыми (например,
a,b,c) - Строка 2: элемент, который нужно добавить (например,
d)
Формат вывода: элементы нового массива, разделённые запятой и пробелом (например, a, b, c, d)
Попробуйте сами
using System;
public class Program {
public static string[] AddToEnd(string[] arr, string item) {
// Напишите код здесь
}
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));
}
}В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы
4Операторы. Часть 1
Арифметические операторыОператор остатка от деленияИнкремент и декрементПостфиксный инкремент и декрементСокращенные арифметические операции7Основы ввода-вывода
Базовый выводИнтерполяция строкЧтение вводаПарсингПовторение — до 120Повторение — True или False5Операторы. Часть 2
Операторы сравненияЛогические операторы. Часть 1Логические операторы. Часть 2Повторение: простая логикаЛогические операторы. Часть 38Приложение-калькулятор
Приветственное сообщениеПолучение чисел11Основы массивов
Объявление массивовДоступ к элементамИзменение массивовКопирование массивовМетоды массивовПовторение — массив произведенийПравка: повторение — обратный массив3Переменные. Часть 2
VarКонстантыСоглашения об именованииПовторение: инициализация переменныхПриведение типов6Принятие решений
Оператор ifКонструкция if - elseОператор switchТернарный операторПовторение: if - elseВложенный if - elseПотренируйтесь самостоятельно: Онлайн-компилятор C#