Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.07.2018, 10:20   #1
Мaкс
Форумчанин
 
Регистрация: 12.06.2018
Сообщений: 831
Вопрос Проверить на пустоту в элементе массива.

Доброго времени суток, можно ли определить на пустоту элемент в массиве? Вот пример:
Код:
int[] mas = new int[1000];

for (int i = 0; i < 10 ; i++)
        {
            mas[i] = i;
        }
for (int i = 0; i < как_определить? ; i++)
        {
            Console.WriteLine(mas[i]);
        }
Тут конечно лучше было бы изменить размер массива на 10 или просто написать вместо "как_определить?" 10 или mas.Length.

Как можно определить это? Искал - там такого нет. С null не работает.

Сразу спасибо!
Мaкс вне форума Ответить с цитированием
Старый 18.07.2018, 11:11   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Никак. Заводите переменную и пишите туда 10.
p51x вне форума Ответить с цитированием
Старый 18.07.2018, 11:12   #3
Мaкс
Форумчанин
 
Регистрация: 12.06.2018
Сообщений: 831
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Никак. Заводите переменную и пишите туда 10.
Иногда это невозможно, но ладно, что есть.
Мaкс вне форума Ответить с цитированием
Старый 18.07.2018, 11:17   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от Мaкс Посмотреть сообщение
можно ли определить на пустоту элемент в массиве?
никак.


Цитата:
Сообщение от Мaкс Посмотреть сообщение
Как можно определить это? Искал - там такого нет. С null не работает.
варианты
1) задавать массив на столько элементов, сколько надо.
использовать при этом mas.Length

2) задать массив на 1000 (кстати, а нафига так делать? просто так, чтобы побольше памяти использовать и создать себе проблемы?)
и в отдельной переменно хранить длину.
Код:
int[] mas = new int[1000];
int masLength = 10;
for (int i = 0; i < masLength ; i++)
3) если позволяет задача - использовать "магические" числа для иницилизации массива (ну, например, -1).

4) использовать массив не int типа, а объектного типа.
там можно и null задать.


но это всё кривые грабли.
в общем, нормальный вариант - это только вариант 1.
либо вообще пересматривать задачу и не использовать массив. Благо структур данных разных полно.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 18.07.2018, 11:22   #5
Мaкс
Форумчанин
 
Регистрация: 12.06.2018
Сообщений: 831
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
задать массив на 1000 (кстати, а нафига так делать? просто так, чтобы побольше памяти использовать и создать себе проблемы?)
Я же сказал, это не лучший пример, тут конечно нафиг не нужно 1000, но я для примера.
Мaкс вне форума Ответить с цитированием
Старый 18.07.2018, 11:54   #6
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Цитата:
можно ли определить на пустоту элемент в массиве
Что такое пустота элемента int-массива?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 18.07.2018, 11:58   #7
Мaкс
Форумчанин
 
Регистрация: 12.06.2018
Сообщений: 831
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Что такое пустота элемента int-массива?
Необязательно int, вот код:
Код:
int[] mas = new int[10];

for (int i = 0; i < 5 ; i++)
        {
            mas[i] = i;
        }
for (int i = 0; i < 10; i++)
        {
            Console.WriteLine(mas[i]);
        }
и тут где:
Код:
for (int i = 0; i < 5 ; i++)
        {
            mas[i] = i;
        }
там заполняется значение i до 4-ого индекса, но длинна массива ровна 10-и, и остальные незаполненные элементы массива я называя пустотой, ведь они не имеют никакого значения.
Мaкс вне форума Ответить с цитированием
Старый 18.07.2018, 11:58   #8
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Ну, ТС же написал то, что он не трогал, то и пустота... А вы тут все вопросы задаете...

Цитата:
Сообщение от Мaкс Посмотреть сообщение
ведь они не имеют никакого значения.
В этом ваша главная проблема и ошибка. инт это набор значений от и до. У него нет никакого специального значения. Даже если память не затрется 0, то будет ссылаться на область память с рандомными значениями.
p51x вне форума Ответить с цитированием
Старый 18.07.2018, 12:19   #9
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от Мaкс Посмотреть сообщение
я называя пустотой, ведь они не имеют никакого значения.
да Вы их можете называть хоть "космосом", они от этого не изменятся.



вот это ваш цикл:
Цитата:
Сообщение от Мaкс Посмотреть сообщение
Код:
for (int i = 0; i < 10; i++)
        {
            Console.WriteLine(mas[i]);
        }
выдал Вам "пустоту" в элементах с индексами от 5 и больше?
Не выдал? И правильно. Никакой "пустоты" там нет.
Как выше об этом уже правильно сказали. В int есть диапазон значений.
и ноль, кстати, это тоже ЗНАЧЕНИЕ.

впрочем. выше уже дан ответ на ваш первый пост.
остальное - пустые разговоры.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 18.07.2018, 12:22   #10
Мaкс
Форумчанин
 
Регистрация: 12.06.2018
Сообщений: 831
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
В int есть диапазон значений.
и ноль, кстати, это тоже ЗНАЧЕНИЕ.
Я что не могу отличить ноль от нуля? Могу конечно!
Мaкс вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проверить таблицу БД на пустоту Bergamot C# (си шарп) 4 01.09.2017 19:26
Проверить пустоту ячеек Radzhab Microsoft Office Excel 3 19.09.2012 12:26
проверить столбец на пустоту Blame Microsoft Office Excel 4 05.06.2012 03:32
Определить количество букв «k» в каждом элементе этого массива. sifa Помощь студентам 0 29.11.2011 21:11
проверить текстовое поле веб-страницы на пустоту на языке JavaScript Екатерина007 JavaScript, Ajax 1 08.05.2008 05:52