2010-11-28 1 views
2

У меня есть запрос LINQ, прикрепленный к кнопке «Далее». Я хочу отображать результаты в некоторых полях внутри формы. На данный момент я могу только показать один элемент при нажатии на кнопку «Далее», когда я нажимаю на «Next» кнопку еще один раз ничего не происходитКак показывать результаты 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 при каждом нажатии Next. Переместить объявление переменной в частном поле экземпляра:

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

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

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

+0

кстати я COUNT инициализируется как 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++; 
     } 
    } 
Смежные вопросы