Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/8: Рейтинг темы: голосов - 8, средняя оценка - 5.00
youngman
0 / 0 / 0
Регистрация: 09.10.2011
Сообщений: 9
1

Как задать массив размера n, у которого все элементы будут null?

12.10.2011, 00:13. Просмотров 1432. Ответов 9
Метки нет (Все метки)

На Питоне это делается так:
Python
1
mass = [None] * n
а в C#?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.10.2011, 00:13
Ответы с готовыми решениями:

Образовать новый массив, элементами которого будут элементы исходного, оканчивающиеся на цифру k
Дан массив, состоящий из n натуральных чисел. Образовать новый массив,...

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

Дан массив. Скопировать все его элементы в другой массив такого же размера
Пожалуйста помогите решить на C#!Срочно надо!Дан массив. Скопировать все его...

Создание списка, элементы которого будут делегаты
Приветствую всех, кто заглянул в эту тему! Мы с товарищем пишем прогу, которая...

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

9
NowMatrix
96 / 79 / 16
Регистрация: 14.01.2011
Сообщений: 438
12.10.2011, 00:17 2
Ну допустим стринговый массив из строк так:
C#
1
string[] a=new string[n];
Все элементы будут равны null.
Если целочисленный массив так задать то значения будут нулю равны по умолчанию.
Ещё так например:
C#
1
2
3
4
5
6
7
8
9
class My {}
class Program
    {
        static void Main(string[] args)
        {
             My[] a=new My[n]; //также все элементы массива а инициализируются null
        }
   }
}
1
freeba
Неадекват
1279 / 1076 / 206
Регистрация: 02.04.2010
Сообщений: 2,473
Записей в блоге: 2
Завершенные тесты: 2
12.10.2011, 00:20 3
C#
1
int?[] mass = new int?[n];
NowMatrix, а строки случайно не string.Empty инициализируются? Или это одно и тоже что null?
1
youngman
0 / 0 / 0
Регистрация: 09.10.2011
Сообщений: 9
12.10.2011, 00:25  [ТС] 4
Точно! Вот же как просто) спасибо

Добавлено через 5 минут
а можно ли через массивы, а не через списки сделать такое?
есть список списков
C#
1
List<List<object>> mass1;
и список объектов
C#
1
List<object> mass2;
далее, в конец коллекции добавляем
C#
1
mass1.Add(mass2);
0
kolorotur
Эксперт .NET
10716 / 8875 / 2222
Регистрация: 17.09.2011
Сообщений: 15,262
Завершенные тесты: 1
12.10.2011, 00:30 5
Цитата Сообщение от youngman Посмотреть сообщение
а можно ли через массивы, а не через списки сделать такое?
Можно, но перед каждым добавлением надо создавать новый массив большего размера и копировать все элементы вручную.
1
NowMatrix
96 / 79 / 16
Регистрация: 14.01.2011
Сообщений: 438
12.10.2011, 00:35 6
Цитата Сообщение от freeba Посмотреть сообщение
NowMatrix, а строки случайно не string.Empty инициализируются? Или это одно и тоже что null?
Strng.Empty - это "" нулевая длина. Это не одно и тоже что и null. Строки кстати в C# это ссылочные типы.
1
youngman
0 / 0 / 0
Регистрация: 09.10.2011
Сообщений: 9
12.10.2011, 01:34  [ТС] 7
Цитата Сообщение от NowMatrix Посмотреть сообщение
Ну допустим стринговый массив из строк так:
C#
1
string[] a=new string[n];
Все элементы будут равны null.
Если целочисленный массив так задать то значения будут нулю равны по умолчанию.
Ещё так например:
C#
1
2
3
4
5
6
7
8
9
class My {}
class Program
    {
        static void Main(string[] args)
        {
             My[] a=new My[n]; //также все элементы массива а инициализируются null
        }
   }
}
А можно все-таки сделать это без инициализации? А то у меня этот массив уже объявлен ранее как object[] mass2 = null. ему потом просто размерность надо указать. так как далее в него будут элементы добавляться

Добавлено через 12 минут
Всё, разобрался. Надо было просто написать так:
C#
1
mass2 = new object[mass1.Length];
Добавлено через 5 минут
Цитата Сообщение от kolorotur Посмотреть сообщение
Можно, но перед каждым добавлением надо создавать новый массив большего размера и копировать все элементы вручную.
Напишие, пожалуйста, как это сделать
0
kolorotur
Эксперт .NET
10716 / 8875 / 2222
Регистрация: 17.09.2011
Сообщений: 15,262
Завершенные тесты: 1
12.10.2011, 01:49 8
Цитата Сообщение от youngman Посмотреть сообщение
Напишие, пожалуйста, как это сделать
Что-то вроде этого:
C#
1
2
3
4
5
6
7
8
static void Add(ref object[][] arr, object[] src)
{
    object[][] tmp = new object[arr.Length+1][];
    for (int i = 0; i < arr.Length; i++)
        tmp[i] = arr[i];
    tmp[tmp.Length - 1] = src;
    arr = tmp;
}
1
youngman
0 / 0 / 0
Регистрация: 09.10.2011
Сообщений: 9
12.10.2011, 02:00  [ТС] 9
Спасибо, огромное! Только он ругается на первую строчку
C#
1
object[][] tmp = new object[arr.Length+1][];
"Ссылка на объект не указывает на экземпляр объекта" (
0
kolorotur
Эксперт .NET
10716 / 8875 / 2222
Регистрация: 17.09.2011
Сообщений: 15,262
Завершенные тесты: 1
12.10.2011, 10:33 10
Цитата Сообщение от youngman Посмотреть сообщение
"Ссылка на объект не указывает на экземпляр объекта"
У вас arr = null.
Я ж не знаю как именно вы привведенный код используете.
0
12.10.2011, 10:33
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.10.2011, 10:33

Создать список, элементы которого будут содержать 8 элементов из первого списка
Есть два списка. Первый содержит слова, допустим 23 элемента. Помогите создать...

Дан массив размера N. Найти сумму элементов массива, превышающих число 5. (Как задать значение которое превышает число?)
Дан массив размера N. Найти сумму элементов массива, превышающих число 5 Как...

Как загрузить все файлы из папки(картинки одного размера) в массив картинок
Здравствуйте, подскажите пожалуйста как сделать чтобы по нажатию на кнопку...


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

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

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