Domanda

Sta lanciando un argomento -difrangexception nel mezzo del ciclo per loop, si prega di notare che ho ritagliato il resto del loop

for (int i = 0; i < CurrentUser.Course_ID.Count - 1; i++)
{    
    CurrentUser.Course[i].Course_ID = CurrentUser.Course_ID[i];
}

Il codice per il corso è

public class Course
{
    public string Name;
    public int Grade;
    public string Course_ID;
    public List<string> Direct_Assoc;
    public List<string> InDirect_Assoc;
    public string Teacher_ID;
    public string STUTeacher_ID;
    public string Type;
    public string Curent_Unit;
    public string Period;
    public string Room_Number;
    public List<Unit> Units = new List<Unit>();
}

e CurrentUser (che è una nuova dichiarazione dell'utente)

public class User
{
    public string Username;
    public string Password;
    public string FirstName;
    public string LastName;
    public string Email_Address;
    public string User_Type;
    public List<string> Course_ID = new List<string>();
    public List<Course> Course = new List<Course>();
}

Sono davvero palesemente confuso su ciò che sto facendo di sbagliato. Qualsiasi aiuto sarebbe molto apprezzato.

È stato utile?

Soluzione

Non è possibile indicizzare in un elenco se tale offset non esiste. Quindi, ad esempio, indicizzare un elenco vuoto lancerà sempre un'eccezione. Usa un metodo come Add Per aggiungere l'elemento alla fine dell'elenco, o Insert Per posizionare l'oggetto al centro dell'elenco da qualche parte, ecc.

Per esempio:

var list = new List<string>();
list[0] = "foo"; // Runtime error -- the index 0 doesn't exist.

D'altro canto:

var list = new List<string>();
list.Add("foo");       // Ok.  The list is now { "foo" }.
list.Insert(0, "bar"); // Ok.  The list is now { "bar", "foo" }.
list[1] = "baz";       // Ok.  The list is now { "bar", "baz" }.
list[2] = "hello";     // Runtime error -- the index 2 doesn't exist.

Nota che nel tuo codice, questo sta accadendo quando tu Scrivi a Courses elenco, e non quando leggi dal Course_ID elenco.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top