ArgumentOutOfRangeException sull’elenco inizializzato

Si sta gettando un ArgumentOutOfRangeException nel mezzo del ciclo For, si noti che ho tagliato il resto del ciclo for

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 Direct_Assoc; public List 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 Units = new List(); } 

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 Course_ID = new List(); public List Course = new List(); } 

Sono davvero semplicemente confuso su ciò che sto facendo male. Qualsiasi aiuto sarebbe molto apprezzato.

Non è ansible indicizzare in un elenco se tale offset non esiste. Quindi, ad esempio, l’indicizzazione di una lista vuota genererà sempre un’eccezione. Utilizza un metodo come Add per aggiungere l’elemento alla fine dell’elenco o Insert per posizionare l’elemento al centro dell’elenco da qualche parte, ecc.

Per esempio:

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

D’altro canto:

 var list = new List(); 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. 

Tieni presente che nel tuo codice ciò accade quando scrivi sull’elenco Courses e non quando leggi dall’elenco Course_ID .