Здравствуйте! Подскажите как организовать пролистывание определенного колл-ва элементов массива. Нашел на просторах вот такой код. Он работает но не так как хотелось бы.
private static Func<int, bool> gt(int val)
{
return (i => i > val);
}
private static Func<int, bool> lt(int val)
{
return (i => i < val);
}
int q; // начало поиска
int w = 6; // конец поиска
List<int> items = new List<int>();
private void button4_Click(object sender, RoutedEventArgs e)
{
q = 0;
w = 6;
listBox.Items.Clear();
items.Clear();
items.Add(1); // Имеется некоторое колл-во элементов
items.Add(2);
items.Add(3);
items.Add(4);
items.Add(5);
items.Add(6);
items.Add(7);
items.Add(8);
items.Add(9);
items.Add(10);
items.Add(11);
items.Add(12);
items.Add(13);
List<int> result = new List<int>(items.Where(gt(q)).Where(lt(w)));
foreach (int i in result)
{
listBox.Items.Add(i.ToString());
q++;
}
}
// ЛИСТАЕМ ВПЕРЕД
private void button5_Click(object sender, RoutedEventArgs e)
{
listBox.Items.Clear();
List<int> result = new List<int>(items.Where(gt(q)).Where(lt(w+=5)));
foreach (int i in result)
{
listBox.Items.Add(i.ToString());
q++;
}
}
// ЛИСТАЕМ НАЗАД
private void button6_Click(object sender, RoutedEventArgs e)
{
listBox.Items.Clear();
List<int> result = new List<int>(items.Where(lt(w)).Where(gt(q-=5)));
foreach (int i in result)
{
listBox.Items.Add(i.ToString());
w--;
}
}
Данный способ хоть и работает но есть небольшая проблема. После продвижения переменные настраиваются на след. пролистывание и если в этом момент вернуть предыдущую страницу то сначала обновятся переменные но не изменятся данные. Что бы вернуться на шаг назад нужно кликнуть по кнопке дважды. Что разумеется очень раздражает.
Пагинацию можно сделать след. образом:
//номер страницы
int pageIndex = 2;
//размер страницы (количество элементов)
int pageSize = 5;
//нужный переход
var page = items.Skip((pageIndex - 1) * pageSize).Take(pageSize);
Чтобы контролировать вперед/назад нужно знать общее кол-во элементов
int count = items.Count;
и следить чтобы номер страницы не был меньше нуля и не больше возможного кол-ва страниц
int pageCount = count / pageSize;
Виртуальный выделенный сервер (VDS) становится отличным выбором
Добрый деньПри переключении между каналами с двух разных мультиплексов необходимо переключать тюнер на другую частоту
Нужно опубликовать сайт на сервере где стоит линукс так как деплоинг сайта на виндовс стоит очень дорогоКакое програмное обеспечение нужно...