Cvičení 8

Pro potřeby testování budeme používat třídu Contact:

public class Contact
{
    public string Name { get; set; }
    public int? Age { get; set; }
    public string Email { get; set; }
    public double Weight { get; set; }
    public bool IsAlive { get; set; }
}

A tento seznam kontaktů:

List<Contact> contacts = new List<Contact>()
{
    new Contact() { Name = "Jan", Age = 30, Email = "jan.csharp@vsb.cz", Weight = 85.6, IsAlive = true },
    new Contact() { Name = "Tereza", Age = 89, Email = "tereza.csharp@vsb.cz", Weight = 61, IsAlive = false },
    new Contact() { Name = "Karel", Age = null, Email = "karel.csharp@vsb.cz", Weight = 102.5, IsAlive = true },
    new Contact() { Name = "Tomáš", Age = 14, Email = "tomas.csharp@vsb.cz", Weight = 45, IsAlive = true },
};
Textový soubor (StreamReader / StreamWriter)
  1. Uložte seznam kontaktů do textového souboru. Formát uložení je na vás (například CSV). Pro zápis konkrétního kontaktu vytvořte samostatnou metodu, které bude potřeba předat stream.
  2. Načtěte uložené kontakty z textového souboru zpět do aplikace (do nového seznamu). Pro čtení konkrétního kontaktu vytvořte samostatnou metodu, které bude potřeba předat stream.
Binární soubor (BinaryReader / BinaryWriter)
  1. Uložte seznam kontaktů do binárního souboru. Pro zápis konkrétního kontaktu vytvořte samostatnou metodu, které bude potřeba předat stream.
  2. Načtěte uložené kontakty z binárního souboru zpět do aplikace (do nového seznamu). Pro čtení konkrétního kontaktu vytvořte samostatnou metodu, které bude potřeba předat stream.
MemoryStream
  1. Implementujte úlohu 1 nebo 2 s využitím MemoryStream místo ukládání do souboru.
Rozhraní IComparer
  1. Vytvořte seznam celých čísel a třídu reprezentující porovnání celých čísel podle následujících popisů (viz níže). Seznam vždy seřaďte pomocí vytvořených komparátorů a vypište výsledek.

    Popisy fungování komparátorů:

    • Čísla jsou porovnána tak, že nejprve jsou umístěna sudá a až poté lichá čísla; v rámci jednotlivých skupin jsou čísla seřazena podle velikosti (např. 2, 4, 6, 8, 1, 3, 5, 7, 9).
    • Čísla jsou porovnána opačně než v předchozím bodě (např. 9, 7, 5, 3, 1, 8, 6, 4, 2).
  2. S využitím vlastního compareru seřaďte seznam kontaktů podle hmotnosti od nejmenší po největší.