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 = "Файл пустой"; } } }
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 = "Перейдите в поле для добавления"; } }
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 = "Пустой список создан"; }
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(); }