Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
3 / 3 / 0
Регистрация: 15.12.2014
Сообщений: 28
1

System.ArgumentNullException: Значение не может быть неопределенным

31.08.2021, 18:07. Показов 1669. Ответов 6

Author24 — интернет-сервис помощи студентам
Здравствуйте.
Не работает вывод в Listbox. Пишет ошибку: System.ArgumentNullException: "Значение не может быть неопределенным.
Имя параметра: item".

Кому не трудно, подскажите пожалуйста, как правильно.
Спасибо огромное
метод:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
public string[] Ex138(string[] s, int n)
        {
            int cnt = 0;
            int l = s.Length;
            string[] s1 = new string[l];
            for (int i = 0; i < l; i++)
            {
                if (s[i].Length == n)
                {
                    s1[cnt++] = s[i];
                }
            }
            return s1;
        }
Вывод на кнопку:
C#
1
2
3
4
5
6
7
8
ClTren e138 = new ClTren();
            string[] s = e138.Ex138(new[] { "a", "aaa", "b", "bbb", "c", "ccc", "dddd" }, 3);
            
            foreach (string i in s)
            {
                listBox1.Items.Add(i);
                //MessageBox.Show(i);
            }
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
31.08.2021, 18:07
Ответы с готовыми решениями:

System.ArgumentNullException: "Значение не может быть неопределенным. Имя параметра: String"
Здравствуйте. Проблема такая: Вылазит исключение System.ArgumentNullException: &quot;Значение не может...

Значение не может быть неопределенным
Здравствуйте. Проблема такая: Вылазит исключение System.ArgumentNullException: &quot;Значение не может...

Значение не может быть неопределенным
Программка которая считывает данные из файла (у меня случайный набор символов среди которых...

Значение не может быть неопределенным
Добрый день Подскажите как исправить ошибку Код: static void Extract(string Куда_извлекать,...

Значение не может быть неопределенным
Здравствуйте. Подскажите пожалуйста, что может означать эта ошибка? Имя члена: Boolean...

6
70 / 47 / 16
Регистрация: 21.07.2021
Сообщений: 187
31.08.2021, 18:15 2
Ставим брейкпоинт после вызова метода Ex138, смотрим свои грехи:
System.ArgumentNullException: Значение не может быть неопределенным

Как видно, элементов 7, но последние 4 из них - Null отсюда и ошибка System.ArgumentNullException
Ресайзайте массив.
1
3 / 3 / 0
Регистрация: 15.12.2014
Сообщений: 28
31.08.2021, 18:17  [ТС] 3
Добавлено через 34 секунды
спасибо. это я видел, но как это исправить?
0
70 / 47 / 16
Регистрация: 21.07.2021
Сообщений: 187
31.08.2021, 18:18 4
Лучший ответ Сообщение было отмечено Барсег как решение

Решение

Барсег,
Можно так (добавил Array.Resize):
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
            public string[] Ex138(string[] s, int n)
            {
                int cnt = 0;
                int l = s.Length;
                string[] s1 = new string[l];
                for (int i = 0; i < l; i++)
                {
                    if (s[i].Length == n)
                    {
                        s1[cnt++] = s[i];
                    }
                }
 
                Array.Resize(ref s1, cnt);
                return s1;
            }
System.ArgumentNullException: Значение не может быть неопределенным
1
3 / 3 / 0
Регистрация: 15.12.2014
Сообщений: 28
31.08.2021, 18:21  [ТС] 5
Чрезвычайно вам благодарен. Теперь я, стал чуточку умнее благодаря вам.
0
Эксперт .NET
17685 / 12871 / 3365
Регистрация: 17.09.2011
Сообщений: 21,136
31.08.2021, 18:46 6
Цитата Сообщение от Барсег Посмотреть сообщение
подскажите пожалуйста, как правильно.
А вам обязательно нужно это через явный цикл реализовать?
Если нет, то можно через Linq:
C#
1
public string[] Ex138(string[] s, int n) => s.Where(si => si.Length == n).ToArray();
1
3 / 3 / 0
Регистрация: 15.12.2014
Сообщений: 28
31.08.2021, 18:59  [ТС] 7
Да, обязательно самому, изучаю базовые алгоритмы, а линк будет мешать на данном этапе.
Благодарю, что нашли время и ответили.
0
31.08.2021, 18:59
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.08.2021, 18:59
Помогаю со студенческими работами здесь

Значение не может быть неопределенным text
private void timer1_Tick(object sender, EventArgs e) if (Clipboard.ContainsText()) { ...

Значение не может быть неопределенным. Имя параметра: value
Есть ответ с сервера в виде json: ,\&quot;Polygon\&quot;:,]}&quot;, &quot;OrganizationId&quot;: 2, &quot;SyncDate&quot;:...

List<string> Значение не может быть неопределенным
Не могу понять, как правильно взаимодействовать со списком, предполагаю, что я его как-то не так...

"Значение не может быть неопределенным" при обработке пустой строки
Есть вот такая проблема и я не знаю как это решить using System; using...

Внешняя сортировка и ошибка "Значение не может быть неопределенным. Имя параметра: String"
Вот сама программа внешняя сортировка. Ошибка: Значение не может быть неопределенным. Имя...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru