Как правильно составить базу на большое количество объектов со свойствами? - C#

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

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

В общем, такая задачка была у меня, составить некую базу. Около 100 объектов, у каждого объекта ровно 30 свойств. При обращении к объекту, например, из ListBox-а, на форму выводилась информация по всем 30 свойствам (Все значения свойств - текстовые). Так же к каждому объекту надо было привязать несколько изображений. вот... Занимаюсь я программированием не так давно, и, недолго думая, замутил такую фигню через Массив... Сейчас пересмотрел код и задумался, мне кажется, что это какое-то извращение и нужно сделать по-другому... сейчас выглядит примерно так:
string[, ] obj = new string[100, 30];
 
            obj[0, 0] = "type"; 
            obj[0, 1] = "name";
            obj[0, 2] = "orange";
            obj[0, 3] = "metal";
            obj[0, 4] = "48305";   
            obj[0, 5] = "1205";    
            obj[0, 6] = "1977";     
            obj[0, 7] = "0";    
            obj[0, 8] = "2391";   
            obj[0, 9] = "55";     
            
//
И так далее, пока не заполню все свойства всем объектам. Потом обращаюсь к ним из листБокса Для изображений создал массив image[,] - так же в котором первый индекс - сам объект, второй - конкретное изображение, таким образом имея int переменную со значением индекса, я могу сразу вывести все нужные мне данные из обоих массивов. Я начал думать, что если перевести все это в Классы, но решил посоветоваться сначала.. И как это иожно будет подобным образом выводить и обращаться к ним?

Решение задачи: «Как правильно составить базу на большое количество объектов со свойствами?»

textual
Листинг программы
public partial class Form1 : Form
{
 
    public Form1()
    {
        InitializeComponent();
    }
 
    DataList dataList;
    private void Form1_Load(object sender, EventArgs e)
    {
        dataList = new DataList(); //объект класса с коллекцией
        dataList.list.Add(new Data(1, "Иванов", 20)); //заполняем коллекцию
        dataList.list.Add(new Data(2, "Петров", 24));
        dataList.list.Add(new Data(3, "Сидоров", 30));
        dataList.list.Add(new Data(4, "Парамонов", 21));
        dataList.list.Add(new Data(5, "Решетов", 37));
        listBox1.SelectedIndexChanged += new EventHandler(listBox1_SelectedIndexChanged); //подключаем обработчик изменения индекса
        listBox1.DisplayMember = "FIO"; //отображаемое свойство
        listBox1.ValueMember = "ID"; //значимое свойство
        listBox1.DataSource = dataList.list; //коллекцию в листбокс
    }
 
    private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
    {
        int id = int.Parse(listBox1.SelectedValue.ToString()); //получаем id выбранного объекта
        Data data = dataList.list.Where(x => x.ID == id).ToList()[0]; //ищем объект в коллекции
        textBox1.Text = data.ID.ToString(); //значения полей объекта в текстбоксы
        textBox2.Text = data.FIO;
        textBox3.Text = data.Age.ToString();
    }
 
}
 
class Data //класс данных с открытыми полями
{
    public int ID { set; get; }
    public string FIO { set; get; }
    public int Age { set; get; }
    public Data(int id, string fio, int age)
    {
        ID = id;
        FIO = fio;
        Age = age;
    }
}
 
class DataList
{
    public List<Data> list { set; get; } //класс с коллекцией
    public DataList()
    {
        list = new List<Data>();
    }
}

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


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

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

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