2015-05-06 19 views
1

輸出值我想通過按btnNext_ClickstudentsList輸出每個student.FirstName,從0值開始到最後一個,點擊「下一步按鈕」。 我想這樣做,但不知道輸出如何正確值從public static List<Student> studentsList = new List<Student>();從列表<>

private void btnCreateStudent_Click(object sender, RoutedEventArgs e) 
{ 
    addStudent(); 
    Clear(); 
} 

private void btnNext_Click(object sender, RoutedEventArgs e) 
{ 
    Next(); 
} 

public void addStudent() 
{ 
    Student student = new Student(); 
    student.FirstName = txtFirstName.Text; 
    student.LastName = txtLastName.Text; 
    student.City = txtCity.Text; 
    Student.studentsList.Add(student); 
} 

public void Clear() 
{ 
    txtFirstName.Clear(); 
    txtLastName.Clear(); 
    txtCity.Clear(); 
} 

public void Next() 
{ 
    foreach (Student student in Student.studentsList) 
    { 
     txtFirstName.Text = student.FirstName; 
    } 
} 
+0

假設你想按鈕獲得下一個可用的學生,你單擊每一次,我會用一個隊列,並保持每次出隊接下來被調用時 – maximdumont

+1

獲得枚舉,共享和重用......反正,這種方法有點脆弱...... –

+0

只是爲了澄清,你是想顯示一個學生(可以改變)或所有的學生一次? – ryanyuyu

回答

2

你需要保持你的程序中的當前狀態,以便實現這樣的「步進」。所有你需要的是當前的索引,但是:在構造函數中初始化它,然後在你的Next方法中使用它。完成當前索引後,將其增加,以便下次調用Next方法時獲得後續值。

int currentStudent = 0; 
public void Clear() { 
    txtFirstName.Clear(); 
    txtLastName.Clear(); 
    txtCity.Clear(); 
    currentStudent = 0; 
} 
public void Next() { 
    // You need to stop when you reach the end of the list 
    if (currentStudent < Student.studentsList.Count) { 
     txtFirstName.Text = Student.studentsList[currentStudent].FirstName; 
     currentStudent++; 
    } 
} 
3

使用一個變量來存儲學生的指標,每按下一次增加一次,這將讓你每次都會看到下一個學生的名字。

例如:

int studentIndex; 
public void Next() 
{ 
    if (studentIndex >= Student.studentsList.Count - 1) 
     studentIndex = 0; 
    txtFirstName.Text = Student.studentsList[studentIndex].FirstName; 
    studentIndex++; 
} 

後到達最後一個學生,它會重置到第一。

1

嘗試存儲讀取爲類成員的最後一個索引。

int lastIndexRead = 0; 
public void Next() 
{ 
    if(lastIndexRead == Student.studentsList.Count) // do something - index is out of bounds of the array 
    else 
    { 
     txtFirstName.Text = Student.studentsList[lastIndexRead].FirstName; 
     lastIndexRead++; 
    } 
} 
+0

。謝謝 – Tal87