我有一个数组,我想根据预设的页面大小将它们分成页面.
这是我的方式:
private int CalcPagesCount()
{
int totalPage = imagesFound.Length / PageSize;
// add the last page, ugly
if (imagesFound.Length % PageSize != 0) totalPage++;
return totalPage;
}
Run Code Online (Sandbox Code Playgroud)
我觉得计算不是最简单的(我的数学很差),你能给出一个更简单的计算公式吗?
Joh*_*ica 159
强制它向上舍入:
totalPage = (imagesFound.Length + PageSize - 1) / PageSize;
Run Code Online (Sandbox Code Playgroud)
或者使用浮点数学:
totalPage = (int) Math.Ceiling((double) imagesFound.Length / PageSize);
Run Code Online (Sandbox Code Playgroud)
Tom*_*Tom 20
实际上,你已经接近最好的办法了.关于我能想到的唯一可能是"更好"的东西是这样的:
totalPage = (imagesFound.Length + PageSize - 1) / PageSize;
Run Code Online (Sandbox Code Playgroud)
而且这个更好的唯一原因是你避免使用if语句.
Boo*_*Boy 18
int pages = ((count - 1) / PAGESIZE) + 1;
Run Code Online (Sandbox Code Playgroud)
OP包含有效答案.如果我想关闭分页,那么我可以设置PageSize = int.MaxValue
.
这里的几个答案添加到PageSize
(imagesFound.Length + PageSize
),这将导致溢出.然后导致不正确的结果.
这是我要使用的代码:
int imageCount = imagesFound.Length;
// include this if when you always want at least 1 page
if (imageCount == 0)
{
return 1;
}
return imageCount % PageSize != 0
? imageCount / PageSize + 1
: imageCount / PageSize;
Run Code Online (Sandbox Code Playgroud)
小智 7
一直用这个公式:
int totalPages = items.Count / pageSize + (items.Count % pageSize > 0 ? 1 : 0);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
58355 次 |
最近记录: |