Маю задачу: Створити клас Пацієнт. Клас повинен містити інформацію про пацієнта лікарні:
●    ім’я
●    вік
●    відділення
●    список хвороб
●    лікар
●    список ліків (список структур типу Ліки (назва препарату, ціна, кількість))
●    загальна сума лікування
Методи класу:
●    Конструктор
●    Методи виводу інформації по пацієнту (дані про пацієнта, список ліків, список хвороб)
●    Публічні властивості на поля класу та індексатор для роботи зі списками
Ось структура та клас (без методів виведення інформації)
▼Прихований текст
struct Medicament
{
    public string name;
    public double price;
    public int quantity;
}
class Patient
{
    string name;
    int age;
    string ward;
    List<string> diseases;
    string doctor_name;
    List<Medicament> medicaments;
    double total_sum_treatment;
    public Patient()
    {
        name = "no name";
        age = 0;
        ward = "no ward";
        diseases = new List<string> ();
        doctor_name = "no doctor";
        medicaments = new List<Medicament> ();
        total_sum_treatment = 0;
    }
    public Patient(string _name, int _age, string _ward, string disease, string doctor, Medicament medicament)
    {
        name = _name;
        age = _age;
        ward = _ward;
        diseases = new List<string>();
        diseases.Add (disease);
        doctor_name = doctor;
        medicaments = new List<Medicament>();
        medicaments.Add (medicament);
        foreach (Medicament drug in medicaments)
            total_sum_treatment += drug.price * drug.quantity;
    }
    //public properties for fields
    public string Name
    {
        get { return name; }
        set { if (value != "") name = value; }
    }
    public int Age
    {
        get { return age; }
        set { if (value > 0) age = value; }
    }
    public string Ward
    {
        get { return ward; }
        set { if (value != "") ward = value; }
    }
    public string Doctor
    {
        get { return doctor_name; }
        set { if (value != "") doctor_name = value; }
    }
    public List<string> Diseases
    {
        get { return diseases; }
    }
    public List<Medicament> Medicaments
    {
        get { return medicaments; }
    }
    public double TotalSumTreatment
    {
        get { return total_sum_treatment; }
    }
}
І, власне, сама проблема: у завданні є пункт про створення індексації для роботи зі списками. Як можна зробити індексацію для двох списків одночасно?
Ось те, що я намагалась зробити (розумію, що це є неправильно, але уявлення не маю як правильно це реалізувати):
▼Прихований текст
public string this[int key]
{
    get
    {
        if (key < 0 || key >= diseases.Count)
            return String.Format("Index can't be < {0} and >{1}", 0, diseases.Count);
        else
            return diseases[key];
    }
    set
    {
        if (key < 0 || key >= diseases.Count)
            Console.WriteLine("Index can't be < {0} and >{1}", 0, diseases.Count);
        else
            diseases[key] = value;
    }
}
public Medicament this[int key]
{
    get
    {
        if (key < 0 || key >= medicaments.Count)
            return String.Format("Index can't be < {0} and >{1}", 0, medicaments.Count);
        else
            return medicaments[key];
    }
    set
    {
        if (key < 0 || key >= medicaments.Count)
            Console.WriteLine("Index can't be < {0} and >{1}", 0, medicaments.Count);
        else
            medicaments[key] = value;
    }
}
Підкажіть, будь ласка.