Помогает ли это вам туда, куда вы идете?Я не могу быть уверен, что все типы данных совпадают и будут скомпилированы как есть, но это попытка поместить всю эту логику в .Select()
.Конечно, это может быть улучшено, чтобы стать лучше!Не стесняйтесь редактировать этот ответ, чтобы он работал лучше.
response.Data.Detectors = atisDAO.GetPME(xl, null).Select(pme =>
new DetectorDetails{
ID = pme.PlaceNum.ToString(),
Count = atisDAO.GetSummaryEntries(int.Parse(pme.PlaceNum.ToString())).Count(), //some work needed here to ensure pme.PlaceNum is actually an number
DetectionTime = new DateTimeZone{
ReadDate = summaries.Max(summary => summary.ReadDate).ToString(DATE_FORMAT),
ReadTime = summaries.Max(summary => summary.ReadDate).ToString(TIME_FORMAT)
}
}
);