Перейти к содержимому

Как вывести массив в listbox c

  • автор:

Вывод массива в 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));

Задачи на обработку элементов массива

  1. Элементы массива, которые больше предыдущего
  2. Разделить элементы массива на максимальный
  3. Первый положительный элемент массива
  4. Заменить элементы массива на противоположные
  5. Поменять местами минимальный и максимальный элементы массива
  6. Найти разность между максимальным и минимальным элементами массива
  7. Найти сумму четных отрицательных элементов массива
  8. Минимальный из элементов массива с нечетными индексами
  9. Вывести элементы массива, которые больше среднего арифметического
  10. Сумма положительных элементов массива
  11. Найти количество положительных элементов массива
  12. Расстояние между точками в n-мерном пространстве
  13. Сформировать массив B из положительных элементов массива A, имеющих четный индекс
  14. Найти среднее арифметическое отрицательных элементов массива. Заменить на него минимальный элемент.
  15. Определить индексы элементов массива, значение которых лежит в указанном пределе
  16. Максимальный по модулю элемент массива
  17. Среднее арифметическое всех чётных элементов массива, стоящих на нечётных местах
  18. Сумма элементов частей массива
  19. Сумма и произведение элементов одномерного массива

Как вывести массив в 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) 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 list = new List(); list.add("str");
P.s. прочитайте книжку по C# , хотя бы вводные главы, займет два дня, и подобных проблем у вас не будет.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *