Составить список студентов группы, используя SortedList - C#
Формулировка задачи:
Решить с помощью SortedList задачу:На основе данных входного файла составить список студентов группы, включив следующие данные: ФИО, год рождения, домашний адрес, какую школу окончил. Вывести в новый файл информацию о студентах, окончивших заданную школу, отсортировав их по году рождения. Замечания: Во всех задачах данного раздела подразумевается, что исходная информация хранится в текстовом файле input.txt, каждая строка которого содержит полную информацию о некотором объекте, результирующая информация должна быть записана в файл output.txt.
Для хранения данных внутри программы организовать массив структур.
В типе структура реализуется метод CompareTo интерфейса IComparable, перегружается метод ToString базового класса object и необходимые операции отношения, поля данных и дополнительные методы продумайте самостоятельно.Помогите пожалуйста вообще ничего не понимаю. Спасибо!
Решение задачи: «Составить список студентов группы, используя SortedList»
textual
Листинг программы
using System;
using System.Collections;
using System.IO;
using System.Linq;
using System.Text;
namespace ConsoleApplication
{
internal class Program
{
private static void Main()
{
Console.Write("Школа: ");
var school = Console.ReadLine();
var list = new SortedList();
foreach (var student in File.ReadAllLines("input.txt").Select(CreateStudent)
.Where(student => student.School == school))
list.Add(student, student);
using (var writer = new StreamWriter("output.txt", false, Encoding.UTF8))
foreach (DictionaryEntry entry in list)
writer.WriteLine(entry.Value);
}
private static Student CreateStudent(string line)
{
var data = line.Split(new[] {'|'}, StringSplitOptions.RemoveEmptyEntries);
return new Student(data);
}
}
internal struct Student : IComparable
{
public Student(string[] data) : this()
{
Name = data[0];
DateOfBirth = DateTime.Parse(data[1]);
HomeAddress = data[2];
School = data[3];
}
public string HomeAddress { get; private set; }
public string Name { get; private set; }
public string School { get; private set; }
public DateTime DateOfBirth { get; private set; }
#region IComparable Members
public int CompareTo(object obj)
{
var other = (Student)obj;
return DateOfBirth.CompareTo(other.DateOfBirth);
}
#endregion
public override string ToString()
{
return string.Format("ФИО: {0}, дата рождения: {1}, домашний адрес: {2}, школа: {3}",
Name, DateOfBirth.ToShortDateString(), HomeAddress, School);
}
}
}