Сведения о вопросе

PIRLO

21:06, 24th August, 2020

Теги

.net   linq   .net-3.5   paging    

Как я могу использовать Linq для подкачки общей коллекции?

Просмотров: 389   Ответов: 2

У меня есть объект типа System.Generic.Collections.List(Of MyCustomClass).

Учитывая целочисленные вариабли pagesize и pagenumber, как я могу запросить только одну страницу MyCustomClass объектов?



  Сведения об ответе

P_S_S

13:38, 11th August, 2020

Если у вас есть linq-запрос, содержащий все строки, которые вы хотите отобразить, этот код можно использовать:

var pageNum = 3;
var pageSize = 20;
query = query.Skip((pageNum - 1) * pageSize).Take(pageSize);

Вы также можете создать метод расширения для объекта, чтобы иметь возможность писать

query.Page(2,50)

чтобы получить первые 50 записей страницы 2. Если это то, что вы хотите, то информация находится в блоге solid code.


  Сведения об ответе

KOMP

12:58, 14th August, 2020

Привет, есть злая вещь под названием PagedList, которую я получил, наблюдая за актерским составом Роба Конери.

http://blog.wekeroad.com/2007/12/10/aspnet-mvc-pagedlistt/

В нем есть все, что нужно пропустить и принять.

Все что ты делаешь это звонишь

var query = from item in DB.Table
where item.Field == 1
orderby item.Field2
select item;

PagedList<MyType> pagedList = query.ToPagedList(pageIndex, pageSize);

Надеюсь, это поможет.. Я использую его сейчас, и он работает нормально для linq до сущностей. С Linq к сущностям вы должны выполнить Orderby, прежде чем использовать Skip and Take.


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться