Skip to content

Commit a618c68

Browse files
NeovexNeovex
andauthored
Removed unnecessary data iteration. (#916)
GridDataProvider iterated twice over data source when paging is active - this has been optimized. Co-authored-by: Neovex <[email protected]>
1 parent 50fa067 commit a618c68

File tree

1 file changed

+6
-10
lines changed

1 file changed

+6
-10
lines changed

blazorbootstrap/Models/GridDataProviderRequest.cs

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -43,15 +43,15 @@ public GridDataProviderResult<TItem> ApplyTo(IEnumerable<TItem> data)
4343
if (index == 1)
4444
{
4545
orderedData = sortItem.SortDirection == SortDirection.Ascending
46-
? resultData.OrderBy(sortItem.SortKeySelector.Compile())
47-
: resultData.OrderByDescending(sortItem.SortKeySelector.Compile());
46+
? resultData.OrderBy(sortItem.SortKeySelector.Compile())
47+
: resultData.OrderByDescending(sortItem.SortKeySelector.Compile());
4848
}
4949
else
5050
{
5151
if (orderedData != null)
5252
orderedData = sortItem.SortDirection == SortDirection.Ascending
53-
? orderedData.ThenBy(sortItem.SortKeySelector.Compile())
54-
: orderedData.ThenByDescending(sortItem.SortKeySelector.Compile());
53+
? orderedData.ThenBy(sortItem.SortKeySelector.Compile())
54+
: orderedData.ThenByDescending(sortItem.SortKeySelector.Compile());
5555
}
5656

5757
index++;
@@ -61,15 +61,11 @@ public GridDataProviderResult<TItem> ApplyTo(IEnumerable<TItem> data)
6161
}
6262

6363
// apply paging
64-
var skip = 0;
65-
var take = data.Count();
6664
var totalCount = resultData!.Count(); // before paging
67-
6865
if (PageNumber > 0 && PageSize > 0)
6966
{
70-
skip = (PageNumber - 1) * PageSize;
71-
take = PageSize;
72-
resultData = resultData!.Skip(skip).Take(take);
67+
int skip = (PageNumber - 1) * PageSize;
68+
resultData = resultData!.Skip(skip).Take(PageSize);
7369
}
7470

7571
return new GridDataProviderResult<TItem> { Data = resultData, TotalCount = totalCount };

0 commit comments

Comments
 (0)