2010-11-28 132 views
2

我有一個LINQ查詢附加到'下一步'按鈕。我想在表單中的某些字段中顯示結果。截至目前,我只能顯示一個元素,當我按下「下一步」按鈕,當我按下「下一步」按鈕一次什麼也沒有發生如何按下「下一步」按鈕時顯示LINQ結果?

private void btnNext_Click(object sender, EventArgs e) 
    { 
     btnPrevious.Enabled = true; 
     int count = 1; 

     var elements = 
      from element in list 
      select element; 

     if(count <= elements.Count()) 
     { 
      FName.Text = elements.ElementAt(count).fName; 
      LName.Text = elements.ElementAt(count).lName; 
      Phone.Text = elements.ElementAt(count).Phone; 
      Gpa.Text = elements.ElementAt(count).Gpa.ToString(); 

      count++; 
     } 
    } 

基本上,我每次按「下一步」按鈕我想繼續顯示列表中的元素,直到它到達列表的末尾。

回答

4

每次按下一個按鈕時,您都重新將您的計數初始化爲1。將變量聲明爲私有實例字段:

class MyApp { 
    // ... 
    private int count = 0; 
} 

你也需要改變count爲零指數的,因爲ElementAt是零索引。只需將count初始化爲0,並將您的條件更改爲if (count < elements.Count())即可。

請注意,在您的代碼中,您可以直接在list上使用LINQ擴展方法,而不需要創建elements

+0

順便說一句我已經計數初始化爲1,因爲我有一個顯示在列表中的第一個元素(0指數)的另一個按鈕,然後啓用「下一步」按鈕 – esausilva 2010-11-28 18:28:37

0
 int count = 1;  
private void btnNext_Click(object sender, EventArgs e) 
    { 
     btnPrevious.Enabled = true; 

     var elements = 
      from element in list 
      select element; 

     if(count <= elements.Count()) 
     { 
      FName.Text = elements.ElementAt(count).fName; 
      LName.Text = elements.ElementAt(count).lName; 
      Phone.Text = elements.ElementAt(count).Phone; 
      Gpa.Text = elements.ElementAt(count).Gpa.ToString(); 

      count++; 
     } 
    } 
相關問題