Как продолжать показывать результаты LINQ при нажатии кнопки «Далее»? - PullRequest
2 голосов
/ 28 ноября 2010

У меня есть запрос 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 ]

4 голосов
/ 28 ноября 2010

Вы повторно инициализируете свой счет до 1 при каждом нажатии Next.Переместите объявление переменной в частное поле экземпляра:

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

Вам также необходимо изменить count на нулевое индексирование, поскольку ElementAt нулевое индексирование.Просто инициализируйте count в 0 и измените ваше условие на if (count < elements.Count()).

Обратите внимание, что в вашем коде вы можете использовать методы расширения LINQ для list напрямую, минуя необходимость создания elements.

0 голосов
/ 28 ноября 2010
        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++;
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...