在列表中找到值的页面的最佳和最好的解决方案是什么,例如以10分页。
所以我有int 0-1000
。我按10
分页。因此,23
位于3
页面。
谁有一个很好的解决方案?
答案 0 :(得分:3)
Int pageNumber = (Int) Math.Ceiling(((Double) (item.Index + 1) / (Double) itemsPerPage));
这假设您知道要查找的项目以及列表不从0开始,如果确实如此,则将其添加到索引中。
我要回答这个问题,因为人们似乎遇到了麻烦。我也从0开始纠正。
在C#中,整数除法返回
任何小数部分都会被覆盖或向下舍入,因此只需对项目索引和页面中的项目数进行整数除法。
对于以下说明,请考虑分子为(index + 1)
23 / 10 = 2
,这不是真的,因为该项目位于第三页。在答案中添加1并不能解决问题,因为20/10 = 2 + 1 = 3这是不正确的,因为此项目位于第2页。
通过施法加倍,我们会导致双重分裂
double / double
返回double
。然后拿着那些圆形的天花板给我们提供的页面。
答案 1 :(得分:2)
无需圆形,然后使用天花板。整数除法将做一个底线,然后加1。
int page = ndx / 10 + 1;
或通用页数:
int page = ndx / perPage + 1
如果你的第一项是1,你只需要在索引中添加一项
int page = (ndx + 1) / perPage + 1
答案 2 :(得分:0)
将整数除以10并向上舍入!