Ввод данных в массив класса c#

249
02 февраля 2020, 07:30

Есть метод LoadStudents, который записывает в массив класса Student объекты с некоторыми полями. Необходимо разработать метод (я пытался, назвал его Add), при помощи которого можно будет проводить данную процедуру, используя текстбоксы, и код дня кнопки, которая будет сохранять эти данные.

public partial class Form1 : Form
{
    public static int k=0;
    Student[] mas = new Student[3];
    public Form1()
    {
        InitializeComponent();
    }
    public delegate int CompareHealth(Student o1, Student o2);
    public class Student
    {
        public string name = "";
        public int days = 0;
        public int hemoglobin = 0;
        public Student() { }
        public Student(string name, int days, int hemoglobin)
        {
            this.name = name;
            this.days = days;
            this.hemoglobin = hemoglobin;
        }
        public Student(Student s)
        {
            name = s.name;
            days = s.days;
            hemoglobin = s.hemoglobin;
        }
        public string add
        {
            set { name = value; }
            get { return name; }
        }
        private static int CompareName(Student o1, Student o2)
        {
            return (string.Compare(o1.name, o2.name));
        }
        private static int CompareDays(Student o1, Student o2)
        {
            if (o1.days > o2.days) return (1);
            else if (o1.days < o2.days) return (-1);
            else return (0);
        }
        private static int CompareHemoglobin(Student o1, Student o2)
        {
            if (o1.hemoglobin > o2.hemoglobin) return (1);
            else if (o1.hemoglobin < o2.hemoglobin) return (-1);
            else return (0);
        }
        public static CompareHealth SortByName { get { return (new CompareHealth(CompareName)); } }
        public static CompareHealth SortByDays { get { return (new CompareHealth(CompareDays)); } }
        public static CompareHealth SortByHemoglobin { get { return (new CompareHealth(CompareHemoglobin)); } }
    }
    class Students
    {
        private int items = 0; const int n = 10;
        private Student[] students = new Student[n];
        public Student this[int num]
        {
            get { return (students[num - 1]); }
            set { (students[num - 1]) = value; }
        }
        public void Vivod(ListBox h)
        {
            for (int i = 0; i < items; i++)
            {
                h.Items.Add(students[i].name + " " + students[i].days + " " + students[i].hemoglobin + " ");
            }
        }
        public void LoadStudents()
        {
            Student p = new Student("А", 13, 68);
            students[items++] = p;
            Student w = new Student("Б", 18, 67);
            students[items++] = w;
            Student e = new Student("В", 5, 75);
            students[items++] = e;
        }
        public void Add(TextBox t1, TextBox t2, TextBox t3)
        {
            if (k < 3)
            {
                Student load = new Student();
                students[items++] = load;
                k++;
            }
        }
        public void SortStudent(CompareHealth compare)
        {
            Student temp = new Student();
            for (int i = 1; i < items; i++)
                for (int j = items - 1; j >= i; j--)
                    if (compare(students[j], students[j - 1]) == -1)
                    { temp = students[j - 1]; students[j - 1] = students[j]; students[j] = temp; }
        }
    }
private void button2_Click(object sender, EventArgs e)
    {
        listBox1.Items.Clear();
        Students students = new Students();
        students.SortStudent(Student.SortByName);
        students.Vivod(listBox1);
    }
private void button1_Click(object sender, EventArgs e)
    {
        Students students = new Students();
        students.Add(textBox1, textBox2, textBox3);
    }
READ ALSO
C# получить данные с сайта с авторизацией

C# получить данные с сайта с авторизацией

у меня есть учетка на неком сайтетам выполняется аякс запрос типа script

189
Алгоритм для изменения формы 2D mesh&#39;a

Алгоритм для изменения формы 2D mesh'a

В 3D пространстве есть двумерный Mesh определенной формы, играющий роль полаЕсть объект, который перемещается по сцене, непосредственно над...

202
Как загрузить связанные таблицы в view?

Как загрузить связанные таблицы в view?

Допустим есть две модели:

190
SQL Увеличить datetime на 1 день

SQL Увеличить datetime на 1 день

Как я могу увеличить datetime на 1 день, в строках где daily=1?

344