Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var queryResult = from o in objects
- where ...
- select new
- {
- A = o.a,
- B = o.b
- }
- ????????? TOP 10????????
- int numberOfObjectsPerPage = 10;
- var queryResultPage = queryResult
- .Skip(numberOfObjectsPerPage * pageNumber)
- .Take(numberOfObjectsPerPage);
- static class PagingUtils {
- public static IEnumerable<T> Page<T>(this IEnumerable<T> en, int pageSize, int page) {
- return en.Skip(page * pageSize).Take(pageSize);
- }
- public static IQueryable<T> Page<T>(this IQueryable<T> en, int pageSize, int page) {
- return en.Skip(page * pageSize).Take(pageSize);
- }
- }
- var q = (from p in products
- where p.Show == true
- select new { p.Name }).Page(10, pageIndex);
- public static IEnumerable<IEnumerable<T>> Page<T>(this IEnumerable<T> source, int pageSize)
- {
- Contract.Requires(source != null);
- Contract.Requires(pageSize > 0);
- Contract.Ensures(Contract.Result<IEnumerable<IEnumerable<T>>>() != null);
- using (var enumerator = source.GetEnumerator())
- {
- while (enumerator.MoveNext())
- {
- var currentPage = new List<T>(pageSize)
- {
- enumerator.Current
- };
- while (currentPage.Count < pageSize && enumerator.MoveNext())
- {
- currentPage.Add(enumerator.Current);
- }
- yield return new ReadOnlyCollection<T>(currentPage);
- }
- }
- }
- var items = Enumerable.Range(0, 12);
- foreach(var page in items.Page(3))
- {
- // Do something with each page
- foreach(var item in page)
- {
- // Do something with the item in the current page
- }
- }
- ( for o in objects
- where ...
- select new
- {
- A=o.a,
- B=o.b
- })
- .Skip((page-1)*pageSize)
- .Take(pageSize)
- var queryResult = (from o in objects where ...
- select new
- {
- A = o.a,
- B = o.b
- }
- ).Take(10);
- private static IEnumerable<T> PagedIterator<T>(IEnumerable<T> objectList, int PageSize)
- {
- var page = 0;
- var recordCount = objectList.Count();
- var pageCount = (int)((recordCount + PageSize)/PageSize);
- if (recordCount < 1)
- {
- yield break;
- }
- while (page < pageCount)
- {
- var pageData = objectList.Skip(PageSize*page).Take(PageSize).ToList();
- foreach (var rd in pageData)
- {
- yield return rd;
- }
- page++;
- }
- }
- var results = from a in dbContext.Authors
- where a.PublishDate > someDate
- orderby a.Publisher
- select a;
- foreach(var author in PagedIterator(results, 100))
- {
- // Do Stuff
- }
- var pages = items.Select((item, index) => new { item, Page = index / batchSize }).GroupBy(g => g.Page);
- pages.First(p => p.Key == thePage)
- public LightDataTable PagerSelection(int pageNumber, int setsPerPage, Func<LightDataRow, bool> prection = null)
- {
- this.setsPerPage = setsPerPage;
- this.pageNumber = pageNumber > 0 ? pageNumber - 1 : pageNumber;
- if (!ValidatePagerByPageNumber(pageNumber))
- return this;
- var rowList = rows.Cast<LightDataRow>();
- if (prection != null)
- rowList = rows.Where(prection).ToList();
- if (!rowList.Any())
- return new LightDataTable() { TablePrimaryKey = this.tablePrimaryKey };
- //if (rowList.Count() < (pageNumber * setsPerPage))
- // return new LightDataTable(new LightDataRowCollection(rowList)) { TablePrimaryKey = this.tablePrimaryKey };
- return new LightDataTable(new LightDataRowCollection(rowList.Skip(this.pageNumber * setsPerPage).Take(setsPerPage).ToList())) { TablePrimaryKey = this.tablePrimaryKey };
- }
- public static IQueryable<T> Page<T, TResult>(this IQueryable<T> obj, int page, int pageSize, System.Linq.Expressions.Expression<Func<T, TResult>> keySelector, bool asc, out int rowsCount)
- {
- rowsCount = obj.Count();
- int innerRows = rowsCount - (page * pageSize);
- if (innerRows < 0)
- {
- innerRows = 0;
- }
- if (asc)
- return obj.OrderByDescending(keySelector).Take(innerRows).OrderBy(keySelector).Take(pageSize).AsQueryable();
- else
- return obj.OrderBy(keySelector).Take(innerRows).OrderByDescending(keySelector).Take(pageSize).AsQueryable();
- }
- public IEnumerable<Data> GetAll(int RowIndex, int PageSize, string SortExpression)
- {
- int totalRows;
- int pageIndex = RowIndex / PageSize;
- List<Data> data= new List<Data>();
- IEnumerable<Data> dataPage;
- bool asc = !SortExpression.Contains("DESC");
- switch (SortExpression.Split(' ')[0])
- {
- case "ColumnName":
- dataPage = DataContext.Data.Page(pageIndex, PageSize, p => p.ColumnName, asc, out totalRows);
- break;
- default:
- dataPage = DataContext.vwClientDetails1s.Page(pageIndex, PageSize, p => p.IdColumn, asc, out totalRows);
- break;
- }
- foreach (var d in dataPage)
- {
- clients.Add(d);
- }
- return data;
- }
- public int CountAll()
- {
- return DataContext.Data.Count();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement