Ошибка связанная со списком - C#

Узнай цену своей работы

Формулировка задачи:

Есть класс Globals
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace Hydrolysis
{
    class Globals
    {
        public static List<Salts> salts = new List<Salts>();
        public static void generateSalts()
        {
            Salts k2s = new Salts();
            k2s.name = "K2S";
            k2s.enviroment = "щелочная";
            k2s.stairs = 2;
            k2s.strongSide = "K(катиону)";
            salts.Add(k2s);
        }
    }
}
И есть класс Salts
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace Hydrolysis
{
    public class Salts
    {
        public string strongSide;
        public string name;
        public int stairs;
        public string enviroment;
 
    }
}
По нажатию кнопки должно происходить следующее
        private void button1_Click(object sender, EventArgs e)
        {
            Globals.generateSalts();
            if (comboBox1.SelectedText != null)
            {
                for (int i = 0; i < 3; i++)
                {
                    if (comboBox1.SelectedText == Globals.salts[i].name)
                    {
                        label2.Text = Globals.salts[i].name;
                    }
                }
            }
            else
                MessageBox.Show("Неопределённый выбор! \nПожалуйста повторите попытку!", "Неопределённый выбор!");
        }
Но по нажатии кнопки выдает следующую ошибку "Индекс за пределами диапазона. Индекс должен быть положительным числом, а его размер не должен превышать размер коллекции. Имя параметра: index" на строке if (comboBox1.SelectedText == Globals.salts[i].name) Помогите пожалуйста.

Решение задачи: «Ошибка связанная со списком»

textual
Листинг программы
private void button1_Click(object sender, EventArgs e)
        {
            Globals.generateSalts();
            if (comboBox1.SelectedText != null)
            {
                foreach (Salts i in Globals.salts)
                {
                    if (comboBox1.SelectedText == i.name)
                    {
                        label2.Text = i.name; break;
                    }
                }
            }
            else
                MessageBox.Show("Неопределённый выбор! \nПожалуйста повторите попытку!", "Неопределённый выбор!");
        }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 3.6 из 5
Похожие ответы