Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.53/34: Рейтинг темы: голосов - 34, средняя оценка - 4.53
5 / 5 / 2
Регистрация: 07.01.2013
Сообщений: 102
1

Как динамически добавить элемент в массив?

09.11.2015, 12:39. Показов 7010. Ответов 7
Метки нет (Все метки)

Добрый день!

У меня имеется массив следующего вида:
C#
1
2
3
4
5
6
7
8
9
        double[][] Ideal =
            {
                    new[] { 1.0, 0.0, 0.0, 0.0, 0.0, 0.0 },
                    new[] { 0.0, 1.0, 0.0, 0.0, 0.0, 0.0 },
                    new[] { 0.0, 0.0, 1.0, 0.0, 0.0, 0.0 },
                    new[] { 0.0, 0.0, 0.0, 1.0, 0.0, 0.0 },
                    new[] { 0.0, 0.0, 0.0, 0.0, 1.0, 0.0 },
                    new[] { 0.0, 0.0, 0.0, 0.0, 0.0, 1.0 }
                };
Пожалуйста, подскажите, как в него добавлять еще одну подобную строку и удлинить существующие строки на еще одно значение при возникновении какого-либо события?

Т.е. чтобы массив принял вид:
C#
1
2
3
4
5
6
7
8
9
10
        double[][] Ideal =
            {
                    new[] { 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 },
                    new[] { 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0 },
                    new[] { 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0 },
                    new[] { 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0 },
                    new[] { 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0 },
                    new[] { 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0 },
                    new[] { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0 }
                };
Догадываюсь, что надо сделать что-то вроде
C#
1
            Ideal[Ideal.Length + 1] = new[] { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0 };
но он не проходит из-за того, что выходит за рамки массива.
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.11.2015, 12:39
Ответы с готовыми решениями:

Как динамически добавить массив эл-тов управления?
Надо добавить на форму массив текстбоксов заранее сэнкс

Как динамически добавить на форму массив TextBox и работать с ним
Мне необходимо в коде обьявить массив из Textbox а потом вывести его както на окно проги чтобы с...

Добавить событие в динамически создаваемый элемент
Соответственно вот код: <html> <head> </head> <body onload="myFunction()"> <script...

Как добавить элемент в массив ?
Дело такое, у меня есть код: <?php session_start(); $_SESSION = array($_GET); //$_GET;...

7
972 / 867 / 349
Регистрация: 26.04.2012
Сообщений: 2,647
09.11.2015, 12:47 2
Для подобных манипуляций надо использовать не массив, а List<T>. Там с этим нет никаких проблем. А размер существующего массива так просто поменять не выйдет.
0
95 / 87 / 61
Регистрация: 21.04.2014
Сообщений: 1,253
09.11.2015, 12:48 3
Daemon2017, как вариант - создать ещё один массив ,который был бы больше на количество элементов, которое нужно добавить. Записать в новый массив старый и добавить новые данные.
Но по нормальному лучше использовать List. С массивами в C# всё не очень весело.
1
Модератор
Эксперт .NET
5819 / 4696 / 2940
Регистрация: 20.04.2015
Сообщений: 8,359
09.11.2015, 12:54 4
Лучший ответ Сообщение было отмечено Daemon2017 как решение

Решение

Daemon2017,
так попробуйте:
C#
1
2
3
4
5
Array.Resize(ref Ideal, Ideal.Length + 1);
Ideal[Ideal.Length - 1] = new double[Ideal[0].Length];
for (int i = 0; i < Ideal.Length; i++)
    Array.Resize(ref Ideal[i], Ideal[i].Length + 1);
Ideal[Ideal.Length - 1][Ideal[Ideal.Length - 1].Length - 1] = 1.0;
1
5 / 5 / 2
Регистрация: 07.01.2013
Сообщений: 102
09.11.2015, 13:04  [ТС] 5
Цитата Сообщение от Даценд Посмотреть сообщение
так попробуйте:
Вау, да вы просто волшебник!
Пожалуйста, подскажите, а правильно ли я понял, что строка 2 как раз реализует создание массива в массиве на ходу?
0
Модератор
Эксперт .NET
5819 / 4696 / 2940
Регистрация: 20.04.2015
Сообщений: 8,359
09.11.2015, 13:14 6
В ней задается количество элементов в новой строке. Хотя при работе со ступенчатыми массивами (массивами массивов) строки и столбцы - понятия не совсем применимые.
1
5 / 5 / 2
Регистрация: 07.01.2013
Сообщений: 102
09.11.2015, 23:55  [ТС] 7
Цитата Сообщение от Даценд Посмотреть сообщение
В ней задается количество элементов в новой строке. Хотя при работе со ступенчатыми массивами (массивами массивов) строки и столбцы - понятия не совсем применимые.
Спасибо! Понял.
0
51 / 12 / 0
Регистрация: 05.09.2014
Сообщений: 92
10.11.2015, 06:27 8
На деле этот метод не добавляет новый элемент в массив, а создает новый, копируя в него значения из старого.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.11.2015, 06:27

Как добавить элемент в массив?
Только начал изучать Angular. Учу по урокам на сайте http://angular.ru/tutorial. Все получилось,...

Как динамически создать массив из динамически конструируемых экземпляров класса?
Есть два класса.Подразумевается ,что первый в конструкторе выделяет интовый массив длинной n,второй...

Как добавить элемент в динамический массив?
Всем привет. У меня такая проблема: Написал класс avto, в нем данные об автомобиле.Моя задача...

Как в цикле добавить элемент в массив
Как в цикле добавить элемент в массив ? т.е есть цикл как в нем добавлять элементы в массив ?...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru