Как увеличить производительность foreach

Доброго времени суток.
В коде использую библиотеки Lers Framework.
К примеру, когда я обращаюсь к каждой точки учета через цикл foreach из коллекции MeasurePoints[] measurePoints = await lersServer.MeasurePoints.GetListAsync(MeasurePointType.Regular, MeasurePointInfoFlags.Attributes | MeasurePointInfoFlags.Equipment), то затрачивается очень много времени на обработку.
Пример, создаю отдельный файл и записываю туда : номер точки учета, ее адрес, полное наименование из коллекции 4000 точек учета.
На это уходит порядка 10 секунд.

Если же напрямую обращаться к БД, то на вышеуказанные манипуляции времени затрачивается в разы быстрее (менее 1-2 сек).
Как ускорить процесс запроса через цикл foreach?
Ниже код
MeasurePoints[] measurePointsCollection = await lersServer.MeasurePoints.GetListAsync(MeasurePointType.Regular, MeasurePointInfoFlags.Attributes | MeasurePointInfoFlags.Equipment);
foreach (MeasurePoint points in measurePointsCollection)
{
var measurepointNumber = points.Number;
var fullTitle = points.FullTitle;
var address = points.Address;
}
Потом полученные значения записываю в файл.

Дело не в foreach. При получении списка точек через Lers Framework основное время уходит запрос списка точек учета, оборудования и атрибутов, формирование объектов, их сериализация и десериализация. Данный процесс занимает много времени.
Прямой запрос к БД естественно всегда будет быстрее, чем запрос через Lers Framework и это невозможно ускорить.

Запрос списка точек учета без дополнительной информации (флаги MeasurePointInfoFlags.Attributes | MeasurePointInfoFlags.Equipment) займет меньше времени.