Как правильно составить базу на большое количество объектов со свойствами? - C#
Формулировка задачи:
В общем, такая задачка была у меня, составить некую базу. Около 100 объектов, у каждого объекта ровно 30 свойств.
При обращении к объекту, например, из ListBox-а, на форму выводилась информация по всем 30 свойствам (Все значения свойств - текстовые). Так же к каждому объекту надо было привязать несколько изображений. вот...
Занимаюсь я программированием не так давно, и, недолго думая, замутил такую фигню через Массив... Сейчас пересмотрел код и задумался, мне кажется, что это какое-то извращение и нужно сделать по-другому... сейчас выглядит примерно так:
И так далее, пока не заполню все свойства всем объектам. Потом обращаюсь к ним из листБокса
Для изображений создал массив image[,] - так же в котором первый индекс - сам объект, второй - конкретное изображение, таким образом имея int переменную со значением индекса, я могу сразу вывести все нужные мне данные из обоих массивов.
Я начал думать, что если перевести все это в Классы, но решил посоветоваться сначала.. И как это иожно будет подобным образом выводить и обращаться к ним?
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"; //
Решение задачи: «Как правильно составить базу на большое количество объектов со свойствами?»
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>(); } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д