2008-08-21 3 views
15

У меня есть объект типа System.Generic.Collections.List (Of MyCustomClass).Как использовать Linq для подкачки общей коллекции?

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

+0

Я считаю, что у вас есть функция Take and Skip для этого. – 2008-08-21 21:05:46

ответ

29

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

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

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

query.Page(2,50) 

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

5

Привет Существует срам называется 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); 

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

Смежные вопросы