2010-11-28 98 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++; 
     } 
    } 
相关问题