2010-11-21 6 views
2

Il est lancer une ArgumentOutOfRangeException au milieu de la boucle, s'il vous plaît noter que je coupe le reste de la boucleArgumentOutOfRangeException sur la liste initialisé

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

Le code pour le cours est

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>(); 
} 

et CurrentUser (qui est une nouvelle déclaration de l'utilisateur)

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>(); 
} 

Je suis vraiment juste de façon flagrante confus quant à ce que je fais mal. Toute aide sera la bienvenue.

+0

Plus que probablement, la liste est vide. Où dans votre code initialisez-vous et ajoutez-vous des valeurs? –

Répondre

9

Vous ne pouvez pas indexer dans une liste si ce décalage n'existe pas. Ainsi, par exemple, indexer une liste vide lèvera toujours une exception. Utilisez une méthode comme Add pour ajouter l'article à la fin de la liste, ou Insert placer l'élément au milieu de la liste quelque part, etc.

Par exemple:

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

D'autre part :

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. 

Notez que dans votre code, ce qui se passe lorsque vous écrivez à la liste Courses, et non lorsque vous lisez la liste Course_ID.

Questions connexes