Exemplo n.º 1
0
        private void OpenSpisokClick(object sender, EventArgs e)
        {
            if (need_updated == true)
            {
                DialogResult result = WantSaveList();
                if (result == DialogResult.Yes)
                {
                    SaveSpisokClick(sender, e);
                }
                else if (result == DialogResult.Cancel)
                {
                    return;
                }
            }
            dlg_open.InitialDirectory = Directory.GetCurrentDirectory();
            if (dlg_open.ShowDialog() == DialogResult.OK)
            {
                file_name = dlg_open.FileName;
                DirectoryInfo info = new DirectoryInfo(file_name);
                if (info.Extension != ".xml")
                {
                    toolStripLabelnfo.Text = "Файл имеет неверное расширение";
                    return;
                }
                toolStripLabelnfo.Text = "Файл открыт: " + info.Name;

                XmlSerializer formatter = new XmlSerializer(typeof(List <Student>));

                using FileStream fs = new FileStream(file_name, FileMode.OpenOrCreate);
                try
                {
                    students     = new StudentsCollection((List <Student>)formatter.Deserialize(fs));
                    need_updated = false;
                    SetButtonEnable(TypeAction.Prev, false);
                    deleteStudent.Enabled = true;

                    if (students.students_list.Count == 0)
                    {
                        deleteStudent.Enabled = false;
                        SetButtonEnable(TypeAction.Next, false);
                    }
                    else
                    {
                        button_update.Enabled = true;
                        deleteStudent.Enabled = true;
                        SetButtonEnable(TypeAction.Next, true);
                    }
                    if (students.GetEnumerator().MoveFirst())
                    {
                        FirstNameTextBox.Text  = students.Current.FirstName;
                        SecondNameTextBox.Text = students.Current.SecondName;
                        FacultyTextBox.Text    = students.Current.Faculty;
                    }
                }
                catch
                {
                    toolStripLabelnfo.Text = "Файл пустой";
                }
            }
        }
Exemplo n.º 2
0
        private void addStudentItem_Click(object sender, EventArgs e)
        {
            if (Text_boxes_empty())
            {
                return;
            }

            if (students == null)
            {
                students = new StudentsCollection();
            }
            if (students.GetEnumerator().Position + 1 >= students.students_list.Count)
            {
                students.AddStudent(new Student(FirstNameTextBox.Text, SecondNameTextBox.Text, FacultyTextBox.Text));
                students.GetEnumerator().MoveEnd();
                deleteStudent.Enabled = true;
                SetButtonEnable(TypeAction.Next, false);
                SetButtonEnable(TypeAction.Prev, true);
                need_updated = true;
                FirstNameTextBox.Focus();

                MoveToAddForm();

                toolStripLabelnfo.Text = "Студент добавлен";
            }
            else
            {
                toolStripLabelnfo.Text = "Перейдите в поле для добавления";
            }
        }
Exemplo n.º 3
0
 private void CreateSpisokItem_Click(object sender, EventArgs e)
 {
     if (need_updated == true)
     {
         if (students != null)
         {
             if (students.students_list.Count > 0)
             {
                 DialogResult result = WantSaveList();
                 if (result == DialogResult.Yes)
                 {
                     SaveSpisokClick(sender, e);
                 }
                 else if (result == DialogResult.Cancel)
                 {
                     return;
                 }
             }
         }
     }
     students     = new StudentsCollection();
     need_updated = true;
     SetButtonEnable(TypeAction.Prev, false);
     SetButtonEnable(TypeAction.Next, false);
     toolStripLabelnfo.Text = "Пустой список создан";
 }
Exemplo n.º 4
0
        static void Main(string[] args)
        {
            List <Student> students = CreateStudents();

            // --------------------------------------------------------------------------

            Console.WriteLine("Iterate over students with for loop:");
            Console.WriteLine();

            // classic collection iteration
            for (int i = 0; i < students.Count; i++)
            {
                Console.WriteLine("Name: {0}, Age: {1}, IQ: {2}", students[i].Name, students[i].Age, students[i].Iq);
            }

            Console.WriteLine();
            Console.WriteLine();

            // --------------------------------------------------------------------------

            Console.WriteLine("Iterate over students using foreach loop:");
            Console.WriteLine();

            // fore each s in the collection of students (IEnumerable loop)
            foreach (var s in students)
            {
                // output "s" information to console
                Console.WriteLine("Name: {0}, Age: {1}, IQ: {2}", s.Name, s.Age, s.Iq);
            }

            Console.WriteLine();
            Console.WriteLine();

            // --------------------------------------------------------------------------

            Console.WriteLine("Sort students and iterate over sorted students using foreach loop:");
            Console.WriteLine();

            // use built-in Sort method on List<T> which will use IComparable<T> implementation from Student class
            students.Sort();

            // fore each s in the collection of students (IEnumerable loop)
            foreach (var s in students)
            {
                // output "s" information to console
                Console.WriteLine("Name: {0}, Age: {1}, IQ: {2}", s.Name, s.Age, s.Iq);
            }

            Console.WriteLine();
            Console.WriteLine();

            // --------------------------------------------------------------------------

            Console.WriteLine("Iterate over sorted students using while loop and enumerator \"manually\":");
            Console.WriteLine();

            var enumarator = students.GetEnumerator();

            // proceed to next item until enumerator is completed
            while (enumarator.MoveNext())
            {
                // acquire current item
                var s = enumarator.Current;

                // output "s" information to console
                Console.WriteLine("Name: {0}, Age: {1}, IQ: {2}", s.Name, s.Age, s.Iq);
            }

            Console.WriteLine();
            Console.WriteLine();

            // --------------------------------------------------------------------------

            try
            {
                // create custom students collection class instance
                var collection = new StudentsCollection(students);

                Console.WriteLine("Iterate over custom collection of students using custom iterator:");
                Console.WriteLine();

                // fore each item in the collection of students
                foreach (var item in collection)
                {
                    // output "item" information to console
                    Console.WriteLine("Name: {0}, Age: {1}, IQ: {2}", item.Name, item.Age, item.Iq);
                }
            }
            catch (NotImplementedException)
            {
                Console.WriteLine("Iterating over StudensCollection is not supported yet.");
            }

            Console.ReadLine();
        }