public static int GetNearestPageSize(int targetSize)
{
for (int i = 0; i < PageSizes.Length; i++)
{
int size = PageSizes[i];
if (size > targetSize)
{
if (i == 0)
{
return size;
}
int prevSize = PageSizes[i - 1];
return ((targetSize - prevSize) < (size - targetSize))
? prevSize
: size;
}
}
return PageSizes.Last();
}