Вывод массива в ListBox
Можно воспользоваться методом AddRange, как пример:
string [] myArr = new string[4]; myArr[0] = "One"; myArr[1] = "Two"; myArr[2] = "Three"; myArr[3] = "Four"; myListBox.Items.AddRange(myArr);
Так вот сразу можно заполнить, если надо (сразу в листе):
myListBox.Items.AddRange(new object[]);
Если не получится, то перебрать массив через цикл и добавить в лист:
string [] myArr = new string[4]; myArr[0] = "One"; myArr[1] = "Two"; myArr[2] = "Three"; myArr[3] = "Four"; myListBox.Items.Clear(); for (int i = 0; i
Отслеживать
ответ дан 22 мая 2016 в 18:15
Алексей Шиманский Алексей Шиманский
71.9k 12 12 золотых знаков 91 91 серебряный знак 180 180 бронзовых знаков
Используйте свойство ListBox.DataSource для отображения элементов, и BindingList вместо массива, если хотите чтобы изменения отображались в ListBox без дополнительного шаманства.
var source = new BindingList() < "One", "Two", "Three", "Four" >listBox1.DataSource = source;
Теперь любые строки добавленные в source будут добавлены и в ListBox . Если в массив состоит из составных объектов или структур, можно указать значение какого свойства должно быть выведено с помощью свойства ListBox.DisplayMember .
Можно конечно и так:
var source = new string [] < "One", "Two", "Three", "Four" >listBox1.DataSource = source;
Только в этом случае для отображения изменений придется делать что-то такое:
listBox1.DataSource = null; listBox1.Items.Clear(); source[0] = "NewValue"; listBox1.DataSource = source;
Или как предложили ранее, в режиме ручного редактирования содержимого.
Как вывести массив в listbox c
Обработка элементов массива
Работа с массивом случайных чисел
public partial class Form1 : Form
int [] num = new int [10]; //объявление массива целых чисел из 10 элементов
Random rnd = new Random (100); //объявление переменной – генератора случайных чисел
Процедура заполнения массива случайными числами:
for ( int j = 0; j < 10; j++)
Процедура вывода массива целых чисел:
listBox1.Items.Clear(); //очистка элементов в listBox
listBox1.Items.Add(num[j].ToString()); //добавим каждый элемент массива в список listbox
Вывод целых чисел, которые делятся на 5:
Подсчет суммы элементов массива:
for ( int j = 0; j < 10; j++)
MessageBox.Show( » Сумма элементов массива : » + Convert.ToString(sum));
Подсчет суммы элементов, которые лежат в диапазоне (20; 50]
for ( int j = 0; j < 10; j++)
if (num[j] > 20 && num[j]
MessageBox.Show( » Сумма элементов массива : » + Convert.ToString(sum));
Поиск максимального элемента массива:
int max = -10000000;
for ( int j = 0; j < 10; j++)
MessageBox.Show( » Максимальный элемент массива : » + Convert.ToString(max));
Задачи на обработку элементов массива
- Элементы массива, которые больше предыдущего
- Разделить элементы массива на максимальный
- Первый положительный элемент массива
- Заменить элементы массива на противоположные
- Поменять местами минимальный и максимальный элементы массива
- Найти разность между максимальным и минимальным элементами массива
- Найти сумму четных отрицательных элементов массива
- Минимальный из элементов массива с нечетными индексами
- Вывести элементы массива, которые больше среднего арифметического
- Сумма положительных элементов массива
- Найти количество положительных элементов массива
- Расстояние между точками в n-мерном пространстве
- Сформировать массив B из положительных элементов массива A, имеющих четный индекс
- Найти среднее арифметическое отрицательных элементов массива. Заменить на него минимальный элемент.
- Определить индексы элементов массива, значение которых лежит в указанном пределе
- Максимальный по модулю элемент массива
- Среднее арифметическое всех чётных элементов массива, стоящих на нечётных местах
- Сумма элементов частей массива
- Сумма и произведение элементов одномерного массива
Как вывести массив в listbox c
Помогите не получается выводить. Уже все облазил.
Если выводить как:
for (int i =0; i
получается что в listBox1 появляются item по кол-ву равным ко-ву переменных в массиве, но не отображается текст а пишет "System.string[]"
(как прицеплять картинки не знаю )
< public partial class Form1 : Form < int n = 0, i = 0; string[] mas; public Form1() < InitializeComponent(); >public void button1_Click(object sender, EventArgs e) < t(); >private void button2_Click(object sender, EventArgs e) < listBox1.Items.Add(mas[0].ToString()); /* for (int i =0; ivoid t() < n++; label1.Text = ("Размер массива: " + n); mas = new string[n]; if (i < n) < mas[i] = textBox1.Text; if (i == 0) textBox2.Text += mas[i]; else textBox2.Text += " " + mas[i]; i++; >> > >
listBox1.Items.AddRange(mas);
выдает ошибку "Значение не может быть неопределенным.
Имя параметра: item"
Последний раз редактировалось Gnaqeaz; 22.10.2014 в 12:39 .
Форумчанин
Регистрация: 18.01.2012
Сообщений: 975
А изначальная задача какова? Есть подозрение, что у вас в t() при заполнении массива логическая ошибка
Благодарить в репутацию. Проклинать — туда же
Пользователь
Регистрация: 17.10.2014
Сообщений: 12
Задачу я поставил себе сам ибо хочу научится программированию и выучить язык. Заключается она в следующем:
1)Заполнять массив размером "n" значениями "х"
2)Пробежать по всему массиву и найти определенное значение.
Форумчанин
Регистрация: 18.01.2012
Сообщений: 975
if (i
так вы только один элемент заполняете каждый раз, видимо цикл забыли. Да и переменную i следует объявить непосредственно в методе t(). Ну или хотя бы обнулять её перед использованием
Благодарить в репутацию. Проклинать — туда же
Пользователь
Регистрация: 17.10.2014
Сообщений: 12
Сообщение от Luuzuk
видимо цикл забыли. Да и переменную i следует объявить непосредственно в методе t(). Ну или хотя бы обнулять её перед использованием
Цикл? обнулять? если будет цикл, то все элементы будут заполнятся значением из tb то есть: 1) 1 2) 1 3)1 , если обнулять каждый раз i то получится что я каждый раз заполню i-тый элемент массива, то есть 0 элемент. Не будь голословен, напиши код, я не могу дойти как мне его написать.
Последний раз редактировалось Gnaqeaz; 22.10.2014 в 14:58 .
Форумчанин
Регистрация: 18.01.2012
Сообщений: 975
Обнулять до цикла
Да и само заполнение у вас довольно странное для поставленной задачи, т.к. все элементы массива будут одинаковыми. Советую еще раз подумать над задачей
Благодарить в репутацию. Проклинать — туда же
Регистрация: 22.05.2007
Сообщений: 9,518
listBox1.Items.Clear; foreach (var s in mas) listBox1.Items.Add(s);
Пользователь
Регистрация: 17.10.2014
Сообщений: 12
mas[i] = textBox1.Text;
при таком заполнении i это же элемент массива или .
Белик Виталий 🙂
Регистрация: 23.07.2007
Сообщений: 57,792
А точнее порядковый номер элемента массива, который начинается с нуля.
I'm learning to live.
Пользователь
Регистрация: 17.10.2014
Сообщений: 12
Итого
< public partial class Form1 : Form < int n = 0; int i = 0; string[] mas; public Form1() < InitializeComponent(); >public void button1_Click(object sender, EventArgs e) < n = Convert.ToInt32(textBox1.Text); mas = new string[n]; label1.Text = ("Размер массива: " + n); >private void button2_Click(object sender, EventArgs e)/работает и так и так listBox2.Items.Clear(); listBox2.Items.AddRange(mas); /*for (int i =0; i private void button3_Click(object sender, EventArgs e) < mas[i++] = textBox2.Text; >> >
Сделал так, ну и хрен с ним. Я понял, что либо до меня ни как не дойдет, как сделать, либо это просто не возможно. Но хотел сделать: в водишь эл. массива а массив зардеется от кол-ва элементов.
| Похожие темы | ||||
| Тема | Автор | Раздел | Ответов | Последнее сообщение |
| Заполнение массива | Teror4uks | Общие вопросы Delphi | 4 | 10.05.2014 18:38 |
| Заполнение массива | KaDima28 | Общие вопросы Delphi | 3 | 27.04.2014 21:30 |
| Заполнение xlValidateList значениями массива | Miguel Sanchez | Microsoft Office Excel | 10 | 25.05.2011 20:15 |
| заполнение массива | feras | Общие вопросы Delphi | 0 | 25.05.2011 03:18 |
| Заполнение массива. | Небесный | Общие вопросы C/C++ | 3 | 01.09.2009 01:39 |
C# вывод массива в listBox

У меня ошибка заключалась в заполнении массива, увеличиваю его размер я создавал каждый раз новый массив, нашел array.resize(T)
думаю с помощью него потом переделаю код, пока обошелся без увеличения массива.
Лучший ответ
создали массив и не проинициализировали его. соответственно при обращении к нему - функция не знает его размера. у вас получается строго сначала жмем кнопку 1, и должны быть уверены что она вернет не пустой массив. и только потом кнопку 2. на второй кнопки нет проверки - а есть ли у нас вообще что-то в массиве?
GnaqeazПрофи (625) 9 лет назад
Проверки потом сделаю, я не могу пока понять суть как передавать туда. (в listbox)
Dr. Ливси Гений (53456) у листбокса есть собственный массив элементов. заполняйте этот массив в цикле полученными вами из текстбокса.
Остальные ответы
Вы массив обьявили как в классе, так и в методе. Внутри метода массив успешно инициализируется и уничтожается при выходе из Т.
GnaqeazПрофи (625) 9 лет назад
Спасибо исправил, теперь беда вместо значений выводит "System.string" (Я понимаю что вопрос элементарный но я путаюсь сам учить C# 🙂
Alexey N Просветленный (34703) У вас нормальный подход - я делал-делал и затупил, помогите. Я считаюю, что это как раз и есть правильный способ обучения. Как вы преобразуете число в строку? Попробуйте так: textBox2.Text += mas[i].ToString ();
string[] mas;//пишет что нигде не используется.
string mas[] потому что.
Alexey NПросветленный (34703) 9 лет назад
http://msdn.microsoft.com/ru-ru/library/9b9dty7d.aspx
Почитай описание массивов в шарпе.
Вечнозелёный Мудрец (16792) Мда, неожиданно =)
GnaqeazПрофи (625) 9 лет назад
Для меня это нормально 🙂 ибо первый язык)
for (int i = 0; i < mas.Length; i++)
listBox1.Items.Add(mas[i]);
for (int i = 0; i < mas.Length; i++)
listBox1.Items.Add(mas.ToString());
string mas[] скучно и не айс, советую List
P.s. прочитайте книжку по C# , хотя бы вводные главы, займет два дня, и подобных проблем у вас не будет.