2010-11-21 7 views
2
それはForループの途中で例外ArgumentOutOfRangeExceptionを投げ

、私はforループの残りの部分を切り取ることに注意してください例外ArgumentOutOfRangeExceptionが

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

コースのコードは

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

ですとCurrentUser(ユーザーの新しい宣言)

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

私は本当にちょうど大騒ぎです私が間違っていることを混乱させる。どんな助けも非常に高く評価されるでしょう。

+0

おそらく、 'List'は空です。あなたのコードでどこで初期化して値を追加しますか? –

答えて

9

オフセットが存在しない場合、リストにインデックスを付けることはできません。たとえば、空のリストのインデックスを作成すると、常に例外がスローされます。例えば

になど、どこかリストの途中でアイテムを配置するために、リストの最後、またはInsertにアイテムを追加するAddのようなメソッドを使用します。

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

一方:あなたはCoursesリストに書き込むとき、あなたはCourse_IDリストから読んでいないとき、あなたのコードでは、これが起こっている

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. 

注こと。

関連する問題