Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.64/742: Рейтинг темы: голосов - 742, средняя оценка - 4.64
97 / 96 / 4
Регистрация: 14.02.2009
Сообщений: 310
1

Как создать двумерный динамический массив

16.03.2009, 22:15. Показов 138520. Ответов 24
Метки нет (Все метки)

Как создать двумерный массив на C# (размерность неизвестна, вычисляется в ходе работы программы) и динамически заполнить его?

пробывал так:
C#
1
2
List<List<string>> MyArray = new List<List<string>> ;
ArrayList Mas=new ArrayList(); Mas.Add(new ArrayList()); Mas.Add(new ArrayList());
но при обращении
C#
1
MaArray[0][0]=6;
Index was out of range. Must be non-negative and less than the size of the collection.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.03.2009, 22:15
Ответы с готовыми решениями:

Как создать двумерный динамический массив на указателях?
Имеется вот такой код, но если поставить **b выбивает ошибку; unsafe public static void smejn() ...

Как создать двумерный динамический массив или список?
как создать двумерный динамический массив или список?

Создать двумерный динамический массив типа int
Как создать двумерный ДИНАМИЧЕСКИЙ массив типа int.

Создать динамический двумерный массив целых чисел
Помогите создать динамический двумерный массив целых чисел (матрица) Базовый класс с выводом...

24
5 / 5 / 1
Регистрация: 01.03.2009
Сообщений: 55
16.03.2009, 23:41 2
"Следует отметить, что динамичекский массив может быть только одномерным. Нижняя граница его индекса равна 0, а количество содержащихся в нем элементов возвращает его свойство Length."
конец цитаты=))
"Создание приложений с помощью C#". Валерий Фаронов
0
97 / 96 / 4
Регистрация: 14.02.2009
Сообщений: 310
16.03.2009, 23:46  [ТС] 3
А как же такая кострукция:
int[][] ArraY = new int[3][]; //динамический и двумерный
и индексация проходит нормально
2
683 / 232 / 16
Регистрация: 15.10.2007
Сообщений: 1,247
17.03.2009, 00:15 4
В C# все массивы динамические
0
97 / 96 / 4
Регистрация: 14.02.2009
Сообщений: 310
17.03.2009, 00:50  [ТС] 5
И к чему эта фраза
0
27 / 27 / 2
Регистрация: 09.12.2008
Сообщений: 138
17.03.2009, 01:00 6
Mecid нет не все,
одномерный
C#
1
int[] mass = new int[4];
многомерный
C#
1
int[,] mass = new int[4,5];
рваный
C#
1
int[][] mass = new int[4][5];
все с фиксированной длинной. советую почитать книги.
0
97 / 96 / 4
Регистрация: 14.02.2009
Сообщений: 310
17.03.2009, 01:14  [ТС] 7
Я не спорю что все массивы динамические -да это так, вы блин помогите как двумерный массив сделать кострукции типа той что я приводил в начале
0
1922 / 427 / 41
Регистрация: 12.07.2007
Сообщений: 2,062
17.03.2009, 02:35 8
Цитата Сообщение от flashok Посмотреть сообщение
пробывал так:
1. List<List<string>> MyArray = new List<List<string>> ;
2. ArrayList Mas=new ArrayList(); Mas.Add(new ArrayList()); Mas.Add(new ArrayList());

но при обращении
MaArray[0][0]=6;
Index was out of range. Must be non-negative and less than the size of the collection.
Ошибка, т.к. в 1 нет элементов вообще, во 2 во вложенном массиве нет элементов.
0
2 / 2 / 5
Регистрация: 06.04.2010
Сообщений: 174
20.04.2010, 15:50 9
народ, ктонибудь может с этим помочь? проблема очень актульна, оздание многоерных безразмерных масивов, используя класс list<T> (в нем уже реализована сортировка и многое другое)
0
1492 / 759 / 103
Регистрация: 22.04.2008
Сообщений: 1,610
20.04.2010, 15:54 10
Вы можете конкретно сказать что вам нужно сделать, а как реализовать мы уже решим.
0
23 / 22 / 5
Регистрация: 14.04.2010
Сообщений: 41
20.04.2010, 16:08 11
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 List<List<int>> Mas = new List<List<int>>();    //динамический двумерный массив
            List<int> row = new List<int>();                //строка массива
            int n = 3;
 
            for (int i = 0; i < n; i++)
            {
                row = new List<int>();
                for (int j = 0; j < n; j++) row.Add(i + j); //строка массива заполняется просто суммой i и j
                Mas.Add(row);                               //строка добавляется в массив
            }
 
            for (int i = 0; i < n; i++)                     //вывод массива
            {             
                for (int j = 0; j < n; j++)
                    Console.WriteLine(Mas[i][j].ToString()+" ");
                Console.WriteLine();
            }
2
2 / 2 / 5
Регистрация: 06.04.2010
Сообщений: 174
20.04.2010, 17:10 12
таблица, аналог xls
для помещения в ячейки различные типы данных
0
0 / 0 / 0
Регистрация: 26.01.2011
Сообщений: 7
31.01.2011, 21:22 13
как описать двумерный динамический массив
0
dmf_tuva
28.04.2011, 14:51 14
описать:
C#
1
int[][] ints = new int[3][];
(msdn c# массив массивов)

задание размера массива = 10;
Array.Resize(ref ints, 10);
Кодило
251 / 179 / 23
Регистрация: 25.11.2009
Сообщений: 685
28.04.2011, 15:25 15
C#
1
2
3
4
List<List<object>> list = new List<List<object>>(); //инициализация
list.Add(new List<object>);//добавление новой строки
list[0].Add("asd")//добавление столбца в новую строку
list[0][0];//обращение к первому столбцу первой строки
Не проверял, писал сам в браузере, но, думаю, должно работать. Вместо object пишите свой тип данных, который будете хранить.
3
0 / 0 / 1
Регистрация: 22.03.2011
Сообщений: 37
01.05.2011, 08:20 16
C#
1
2
3
4
5
6
7
ArrayList servers = new ArrayList();
 
servers.Add(new ArrayList());
 
(servers[index] as ArrayList).Add("something");
// обращение так
(servers[index] as ArrayList).[index].ToString();
0
35 / 32 / 9
Регистрация: 17.09.2010
Сообщений: 210
02.05.2011, 19:39 17
вот тебе пример проекта, там только windows form.
где то нашел на пк у себя, может тебе пригодится))
random_matrix.zip
1
m0nax
02.05.2011, 20:08
  #18

Не по теме:

А еще лучше вообще не использовать многомерные массивы, как правило они прекрасно заменяются обычными списками объектов
Трехмерный и выше массивы это вообще write-only говнокод

0
2 / 2 / 0
Регистрация: 22.07.2010
Сообщений: 51
21.05.2012, 09:35 19
Цитата Сообщение от r0fL Посмотреть сообщение
C#
1
2
3
4
List<List<object>> list = new List<List<object>>(); //инициализация
list.Add(new List<object>);//добавление новой строки
list[0].Add("asd")//добавление столбца в новую строку
list[0][0];//обращение к первому столбцу первой строки
Не проверял, писал сам в браузере, но, думаю, должно работать. Вместо object пишите свой тип данных, который будете хранить.
list.Add(new List<object>);
Выдет ошибку
A new expression requires () or [] after type
2
Эксперт .NET
15314 / 11608 / 3044
Регистрация: 17.09.2011
Сообщений: 19,430
21.05.2012, 10:40 20
Цитата Сообщение от HypnoticSpecter Посмотреть сообщение
list.Add(new List<object>());
Подправил.
2
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.05.2012, 10:40

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Как добавить элемент в двумерный динамический массив?
Уважаемые программисты, очень прошу помочь... Есть динамический массив, описанный как: ...

Как сделать двумерный динамический массив типа А
В общем вот пример Ну я думаю что все понятно. Что-то вроде new A Но это естественно не...

Двумерный динамический массив: как увеличить количество элементов
Доброй ночи. Возникла проблема создания двумерного массива. По сути я создал массив, но теперь его...

Re: Как создать динамический массив?
А нормального массива нету? ArrayList тоже что попало, по индексу обратится нельзя ArrayList arr =...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.