Появилась проблема откуда не ждал...
Вот такой монстр у меня получился с моими знаниями:
data - IEnumerable T на порядка 400 элементов.
LogicalName - byte array
var result = (from gdt in groupedDataTime
join ad in activeDevices
on gdt.Key.DeviceId equals ad.DevId
join a in addresses
on ad.GAID equals a.GAID
select new DeviceDto()
{
Id = (int)ad.DevId,
SerialNo = ad.SerialNo,
Address = a.UnitName,
DevTypeId = ad.DevTypeId,
SubType1 = ad.SubType1,
SubType2 = ad.SubType2,
DateInstall = ad.DateInstall,
GroupId = ad.GroupId,
Time = gdt.Key.Time
}).ToList();
var count = result.Count();
for (var i = 0; i < count; i++)
{
result[i].Total = data.Where(x => x.DeviceId == result[i].Id && x.Time == result[i].Time && (x.LogicalName.SequenceEqual(Flags.DeviceTotal) || x.LogicalName.SequenceEqual(Flags.DeviceTotal7))).Select(x => x.NormValue).FirstOrDefault() / 1000;
}
Загвоздка в том, что цикл "for" отрабатывает неимоверно долгое время(400 объектов в списке result порядка 20-30 секунд)
Есть ли способ ускорить этот процесс?