C# Копирование массива

293
30 октября 2017, 20:42

Добрый день. Осваиваю язык C#. Задача в следующем. Как скопировать последовательно элементы двумерного массива размером 5*5 в два массива размером 5*2 и 5*3 . Используя только цикл for и if.

Буду весьма благодарен)

Начал с создания трех массивов:

int[,] arr1 = new int[5, 5];
int[,] arr2 = new int[5, 2];
int[,] arr3 = new int[5, 5];

далее, создал цикл в цикле, так как это двумерный массив:

for (int i = 0; i < arr1.Length; i++)
{
    for (int k = 0; k < arr1.Length; k++)
    {
        arr2[i, k] = arr1[i, k];
        arr3[i, k] = arr1[i, k+2];
    }
}
Console.WriteLine(arr3);

А вот саму тонкость вывода, нащупать не могу

Answer 1
  1. Array.Length возвращает:

    Общее число элементов во всех измерениях массива

    Сомневаюсь, что именно это вам нужно. Храните размерности массива в константах/переменных или воспользуйтесь методом Array.GetLength(int dimension)

  2. Так как все массивы имеют разные размерности, сомневаюсь что можно реализовать задуманное внутри одного и того же цикла. Подумайте об этом.

  3. Console.WriteLine(...) не умеет выводить кастомные типы и не обязан уметь, он просто вызовет метод .ToString() на переданном объекте. Сомневаюсь, что это именно то что вам нужно. Организуйте вывод в цикле, добавляя вручную в нужных местах вывод разделителей между элементами в строке и переводы строк между строками элементов.

Answer 2

Заработало) вот как выглядит) Спасибо кто помог.

int[,] arr = new int[5, 5]
{
    { 1, 4, 5, 5, 5 },
    { 4, 4, 4, 4, 4 },
    { 3, 6, 3, 1, 6 },
    { 1, 4, 7, 9, 9 },
    { 4, 5, 5, 5, 5 }
};

int[,] arr1 = new int[5, 2];
int[,] arr2 = new int[5, 3];

for (int i = 0; i< 5; i++)
{
    for (int j = 0; j< 2; j++)
    {
        arr1[i, j] = arr[i, j];
        Console.Write(arr1[i, j]);
    }
    Console.WriteLine();
}

for (int i1 = 0; i1< 5; i1++)
{
    for (int j1 = 0; j1< 3; j1++)
    {
        arr2[i1, j1] = arr[i1, j1 + 2];
        Console.Write(arr2[i1, j1]);
    }
    Console.WriteLine();
}
READ ALSO
Получить данные от окна

Получить данные от окна

Возникла необходимость создавать окно для ввода названия файла который позже будет созданСоздать окно несложно, но как от этого окна вернуть...

195
Правильная реализация в программе MemoryCache

Правильная реализация в программе MemoryCache

Создаю приложение WinFormsВ главном классе Form1 имею объект MemoryCache cache

238
Зачем return после редиректа?

Зачем return после редиректа?

Есть система авторизацииВот её основная часть:

270
нужно каждый час запускать Electron АПКУ на windows

нужно каждый час запускать Electron АПКУ на windows

всем привет! ситуация следующая - мне нужно каждый час запускать exe-файл или скрипт mainjs в виндовс 7,8,10

199