按“下一步”按钮时如何继续显示LINQ结果?

时间:2010-11-28 18:04:56

标签: c# linq list button

我有一个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++;
        }
    }

基本上,每次按下“下一步”按钮,我都要继续显示列表中的元素,直到它到达列表的末尾。

2 个答案:

答案 0 :(得分:4)

每按一次Next,您就会将计数重新初始化为1。将变量声明移动到私有实例字段:

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

您还需要将count更改为零索引,因为ElementAt为零索引。只需将count初始化为0,然后将条件更改为if (count < elements.Count())

请注意,在您的代码中,您可以直接使用list上的LINQ扩展方法,而无需创建elements

答案 1 :(得分: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++;
        }
    }