Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/10: Рейтинг темы: голосов - 10, средняя оценка - 4.80
n1l
135 / 137 / 18
Регистрация: 26.07.2010
Сообщений: 911
#1

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

14.04.2012, 17:40. Просмотров 1809. Ответов 17
Метки нет (Все метки)

Как создать не строготипизированный динамический массив в c#?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.04.2012, 17:40
Ответы с готовыми решениями:

Как создать динамический массив?
Динамический массив создаётся подобно тому,как в Си или нет? Пример можно?

Как создать динамический массив
Так случилось, что потребовался "глобальный"(в разных event'ах используется)...

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

Как создать динамический массив?
Я так понимаю что в c# массивы можно создавать только определенного размера....

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

17
Talent
75 / 75 / 12
Регистрация: 07.01.2012
Сообщений: 167
14.04.2012, 18:11 #2
пользуйтесь готовым классом System.Collections.ArrayList
1
n1l
135 / 137 / 18
Регистрация: 26.07.2010
Сообщений: 911
14.04.2012, 18:18  [ТС] #3
А он разве не строготипизированный?
0
Talent
75 / 75 / 12
Регистрация: 07.01.2012
Сообщений: 167
14.04.2012, 18:26 #4
да, он строго типизированный, типом object
1
n1l
135 / 137 / 18
Регистрация: 26.07.2010
Сообщений: 911
14.04.2012, 18:27  [ТС] #5
Мне нужно не строго типизированный.
0
kolorotur
Эксперт .NET
10221 / 8575 / 2117
Регистрация: 17.09.2011
Сообщений: 14,736
Завершенные тесты: 1
14.04.2012, 18:30 #6
C# - строго типизированный язык, а значит в коллекциях там тоже строгая типизация.
Как посоветовали выше - используйте ArrayList - он строго типизован под object, который, как вам конечно же известно, является базовым классом, от которого наследуются все остальные.
1
n1l
135 / 137 / 18
Регистрация: 26.07.2010
Сообщений: 911
14.04.2012, 18:33  [ТС] #7
Если бы знал не спрашивал, спасибо.

Ну как бы я знал что он наследует, и так далее...
В общем спасибо.
0
n1l
135 / 137 / 18
Регистрация: 26.07.2010
Сообщений: 911
15.04.2012, 20:51  [ТС] #8
скажите пожалуйста, а как придать ему динамичности?

вот я определил его в начале класса:
C#
1
ArrayList[,] itemArray = new ArrayList[1, 1]
как в коде изменить кол-во столбцов и строк на... например на 22?
0
NowMatrix
96 / 79 / 16
Регистрация: 14.01.2011
Сообщений: 438
15.04.2012, 21:59 #9
Ну вообще он объявляется так и доступ к элементам по индексам производится.

C#
1
2
3
ArrayList myAL = new ArrayList();
myAl.Add("Hello");
maAl.Add(1);
0
n1l
135 / 137 / 18
Регистрация: 26.07.2010
Сообщений: 911
15.04.2012, 22:35  [ТС] #10
Я тут не указал, забыл. Мне двумерный нужен.
0
turbanoff
Эксперт Java
4016 / 3751 / 741
Регистрация: 18.05.2010
Сообщений: 9,329
Записей в блоге: 11
Завершенные тесты: 1
16.04.2012, 08:16 #11
Цитата Сообщение от n1l Посмотреть сообщение
Я тут не указал, забыл. Мне двумерный нужен.
Тогда сделайте коллекцию ArrayList-ов
C#
1
2
3
4
5
            List<ArrayList> twoDim = new List<ArrayList>();
            twoDim.Add(new ArrayList());
            twoDim.Add(new ArrayList());
            twoDim[0].Add(1);
            twoDim[0].Add("string");
PS. Нетипизированная коллекция резко увеличивает вероятность ошибки, по сравнению с типизированной. Нужно сто раз подумать, прежде чем её использовать.
1
n1l
135 / 137 / 18
Регистрация: 26.07.2010
Сообщений: 911
16.04.2012, 08:18  [ТС] #12
А как сделать так что бы он в цикле заполнялся?
0
turbanoff
Эксперт Java
4016 / 3751 / 741
Регистрация: 18.05.2010
Сообщений: 9,329
Записей в блоге: 11
Завершенные тесты: 1
16.04.2012, 08:46 #13
Цитата Сообщение от n1l Посмотреть сообщение
А как сделать так что бы он в цикле заполнялся?
Очевидно, в цикле вызвать - Add.
0
n1l
135 / 137 / 18
Регистрация: 26.07.2010
Сообщений: 911
16.04.2012, 08:50  [ТС] #14
C#
1
2
twoDim.Add(new ArrayList());
            twoDim.Add(new ArrayList());
Я про вот эти две строчки.
0
turbanoff
Эксперт Java
4016 / 3751 / 741
Регистрация: 18.05.2010
Сообщений: 9,329
Записей в блоге: 11
Завершенные тесты: 1
16.04.2012, 08:58 #15
Цитата Сообщение от n1l Посмотреть сообщение
C#
1
2
twoDim.Add(new ArrayList());
            twoDim.Add(new ArrayList());
Я про вот эти две строчки.
Я не понимаю в чем проблема. Вы не знаете как написать цикл? Или не понимаете, что в этих строках написано?
0
n1l
135 / 137 / 18
Регистрация: 26.07.2010
Сообщений: 911
16.04.2012, 09:01  [ТС] #16
Цикл я так понял будет примерно такой:


C#
1
2
3
4
5
6
7
8
9
List<ArrayList> twoDim = new List<ArrayList>();
            twoDim.Add(new ArrayList());
            twoDim.Add(new ArrayList());
 
 
for (int i=0;i<=100,i++)
{
            twoDim[i].Add(1);
}
C#
1
2
            twoDim.Add(new ArrayList());
            twoDim.Add(new ArrayList());
А вот эти строки... к чему?
0
turbanoff
Эксперт Java
4016 / 3751 / 741
Регистрация: 18.05.2010
Сообщений: 9,329
Записей в блоге: 11
Завершенные тесты: 1
16.04.2012, 09:07 #17
Цитата Сообщение от n1l Посмотреть сообщение
twoDim[i]
это добавление "строки" в двумерный массив. Вот у вас в цикле используются 100 строк, значит их надо сначала добавить (так как у нас же динамический).
C#
1
2
3
4
5
6
7
8
9
10
List<ArrayList> twoDim = new List<ArrayList>();
for (int i=0;i<=100,i++)
{
            twoDim.Add(new ArrayList())
}
 
for (int i=0;i<=100,i++)
{
            twoDim[i].Add(1);
}
1
n1l
135 / 137 / 18
Регистрация: 26.07.2010
Сообщений: 911
16.04.2012, 09:08  [ТС] #18
Разобрался спасибо.
0
16.04.2012, 09:08
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.04.2012, 09:08

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

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

Как создать динамический массив и заполнить его с клавиатуры
Как это реализовать на c# подскажите пожалуйста, смотрел в других темах, как то...


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

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

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