在列表中分页时获取重复记录
Getting duplicate records while paging in list
我正在循环访问包含 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 条记录。我的逻辑有什么问题?
最后一个循环当 i=3
skip 等于 12 而不是 15。这就是为什么你会得到重复的值。
int Totalskip=0;
for (int i = 0; i < totalColumnToShow; i++)
{
if(i>0){
var skip = rowsPerColumn[i-1];
Totalskip =Totalskip+ skip;
}
PagedList =GroupedLinksCategory.Select(y => new copiedList { Title = y.Title, ID = y.ID, Name= y.Name }).Skip(Totalskip).Take(rowsPerColumn[i]).ToList();
foreach (var row in PagedList)
{
if (row.Name== "Test")
{
//my Logic
}
else
{
//my Logic
}
}
}
我正在循环访问包含 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 条记录。我的逻辑有什么问题?
最后一个循环当 i=3
skip 等于 12 而不是 15。这就是为什么你会得到重复的值。
int Totalskip=0;
for (int i = 0; i < totalColumnToShow; i++)
{
if(i>0){
var skip = rowsPerColumn[i-1];
Totalskip =Totalskip+ skip;
}
PagedList =GroupedLinksCategory.Select(y => new copiedList { Title = y.Title, ID = y.ID, Name= y.Name }).Skip(Totalskip).Take(rowsPerColumn[i]).ToList();
foreach (var row in PagedList)
{
if (row.Name== "Test")
{
//my Logic
}
else
{
//my Logic
}
}
}