i'm doing some programming exercises from Exercism.io and need some input on how to start on the Grade-School assignment.
The assignment is to add name and grade and receive name from grade index in the form of List<string>. 
The first tests for the assignments looks like this:
[Test]
public void New_school_has_an_empty_roster()
{
    Assert.That(school.Roster, Has.Count.EqualTo(0));
}
[Test]
public void Adding_a_student_adds_them_to_the_roster_for_the_given_grade()
{
    school.Add("Aimee", 2);
    var expected = new List<string> { "Aimee" };
    Assert.That(school.Roster[2], Is.EqualTo(expected));
}
I'm not looking for a complete solution but i need some advice on what Roster should be. My thought was that Roster would be a array of List like this:
public List<string>[] Roster = new List<string>[];
The problem with this is that it doesn't pass the first test because i have to assign a length for the array so count will never be 0. I need a push in the right direction on how to solve this.
List<T>and Arrays only stores a value. To associate items with a key, take a look atDictionary<T,U>