Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/18: Рейтинг темы: голосов - 18, средняя оценка - 4.78
 Аватар для fromshadow
5 / 5 / 2
Регистрация: 07.01.2010
Сообщений: 61

Увеличение размерности многомерного массива

05.12.2010, 02:09. Показов 3389. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Ситуация такая: есть несколько массивов, в которые я вношу константное количество данных. Но я хочу сделать, что бы я вводил число, которое будет указывать количество данных, и после этого расширял массивы, в зависимости от этого числа, к примеру:

C#
1
public int[] Ax = new int[0]; //определяю массив нулевой длины
считываю значение N, а потом с помощью ф-ции:

C#
1
2
3
4
5
6
        public static void IncreaseArrLength(int[] arr, int delta)
        {
            int[] tmp = new int[arr.Length + delta];
            Array.Copy(arr, 0, tmp, 0, arr.Length);
            arr = tmp;
        }
увеличиваю размерность того массива

C#
1
IncreaseArrLength(Ax,N);
Так вот, этот код я нагуглил и работает он прекрасно... но по-мимо одномерных массивов, у меня еще есть и многомерные... и как применить эту же ф-цию к ним, я не знаю... Возможно кто-то подскажет, как то же осуществить для массива:
C#
1
public int[,] ArrS = new int[2, 0];
?

Добавлено через 54 минуты
Вообще я понял, что затупил и реализовал то же так
C#
1
2
3
4
5
6
        public static void IncreaseArrLength2(int[,] arr, int delta)
        {
            int[,] tmp = new int[0,arr.Length + delta];
            Array.Copy(arr, 0, tmp, 0, arr.Length);
            arr = tmp;
        }
только вот я погорячился и что то, что первый вариант, что второй не очень то и пашут))

В общем суть вопроса остается, как реализовать увеличение массива по введенным данным?

Добавлено через 13 минут
<нецензурное выражение> я дурак... не ставил ref... в общем:

C#
1
2
3
4
5
6
public static void IncreaseArrLength2(ref int[,] arr, int delta)
        {
            int[,] tmp = new int[0,arr.Length + delta];
            Array.Copy(arr, 0, tmp, 0, arr.Length);
            arr = tmp;
        }
C#
1
IncreaseArrLength2(ref ArrS,N)
Вопрос исчерпан... тему можно удалить, если посчитаете нужным, то нафлудил я тут..))
 Комментарий модератора 
fromshadow, запрещено использовать нецензурные выражения в любом виде - п. 3.2 правил.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.12.2010, 02:09
Ответы с готовыми решениями:

Получение размерности многомерного массива
Пусть будет массив N с двумя размерностями. Для одномерного массива всё просто, надо воспользоваться Length'ом, а для многомерного? В...

Доступ к конкретной размерности многомерного массива
Возникла необходимость присвоить одномерному массиву одну из размерностей друмерного. class ShellSort&lt;T&gt; where T: IComparable ...

Копирование многомерного массива
Есть ли какие-нибудь способы копирования одного многомерного массива Array в другой anotherArray ? При чем у них могут быть разные...

5
 Аватар для body90
467 / 344 / 19
Регистрация: 26.05.2009
Сообщений: 2,696
05.12.2010, 02:13
А почему не использовать массивы?
Для многомерных смотрите в сторону зубчатых массивов.
0
 Аватар для fromshadow
5 / 5 / 2
Регистрация: 07.01.2010
Сообщений: 61
05.12.2010, 02:32  [ТС]
Изначально были зубчатые, но у меня довольно большая программа и там с ними что-то не сложилось... так я вернулся к тому что мне более понятней, а это матрицы..
0
 Аватар для body90
467 / 344 / 19
Регистрация: 26.05.2009
Сообщений: 2,696
05.12.2010, 02:54
А списками не легче пользоваться, раз постоянно меняется размер?
0
 Аватар для m0nax
1274 / 975 / 113
Регистрация: 12.01.2010
Сообщений: 1,971
05.12.2010, 03:01
Многомерные массивы вообще зло, объектный подход как правило по всем параметрам лучше
0
 Аватар для sigmov
585 / 372 / 63
Регистрация: 22.07.2009
Сообщений: 875
Записей в блоге: 4
05.12.2010, 04:16
Цитата Сообщение от fromshadow Посмотреть сообщение
C#
1
int[,] tmp = new int[[B]0[/B],arr.Length + delta];
Очень интересная строчка.
Какой бы ни был массив arr - массив tmp сможет содержать 0 элементов.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
05.12.2010, 04:16
Помогаю со студенческими работами здесь

Инициализация многомерного массива
Помогите заполнить многомерный массив этим массивом ДАЗРВС ТУЕПОМ ЙБГЖИК ЛНФХЦЧ ШЩЪЫЬЭ ЮЯ. ,- (четвёртый символ - это...

Заполнение многомерного массива
Доброго денёчка всем. Столкнулся с проблемой - пытаюсь воспроизвести быструю RBF интерполяцию с помощью математической библиотеки alglib....

Создание многомерного массива-структур
Нужно создать и сразу заполнить массив-структур 20-6(6-строк, 20-столбцов) Например, структура: struct Train { public...

Обращение к элементам многомерного массива
Здравствуйте! Прошу помочь разобраться со следующей задачей: как поочерёдно проходить значения в массиве учитывая строки? Нужно написать...

Чтение многомерного массива из файла
Помогите пожалуста, если я записывал данные из четырехмерного масива в файл как: foreach (int m in masivpidpole) ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru