我正在循环列表中有19条记录。我希望得到4页的记录。第一页将有5条记录,第二条将有5条记录,第三条将有5条记录,第四条将有4条记录。
所以我循环如下
for (int i = 0; i < totalColumnToShow; i++)
{
var page = i + 1;
var skip = rowsPerColumn[i] * (page - 1);
PagedList =GroupedLinksCategory.Select(y => new copiedList { Title = y.Title, ID = y.ID, Name= y.Name }).Skip(skip).Take(rowsPerColumn[i]).ToList();
foreach (var row in PagedList)
{
if (row.Name== "Test")
{
//my Logic
}
else
{
//my Logic
}
}
}
变量rowsPerColumn是包含4条记录的数组,如
rowsPerColumn[0] = 5
rowsPerColumn[1]= 5
rowsPerColumn[2] = 5
rowsPerColumn[3]= 4
在最后一页我从第3页获得了2条记录。我的逻辑出了什么问题?
答案 0 :(得分:1)
当i = 3
时,最后一次循环skip等于12而不是15.这就是为什么你得到重复值。
if (publishdatefrom.HasValue & !(publishdateto.HasValue))
{
DateTime d1 = publishdatefrom.Value.Date;
DateTime d2 = d1.AddDays(1);
products = products.Where(p => p.CreatedDate >= d1);
}
if (!(publishdatefrom.HasValue) & publishdateto.HasValue)
{
DateTime d1 = publishdateto.Value.Date;
DateTime d2 = d1.AddDays(1);
products = products.Where(p => p.CreatedDate >= d1 && p.CreatedDate < d2);
}