Я искал решение своей проблемы, но не смог найти именно то, что мне нужно, поэтому я решил создать этот вопрос:
У меня есть список, содержащий объекты.Эти объекты создаются на основе данных из файла.В файле будет около 30 отчетов.Исходя из названия отчета, в данном случае это «ОТЧЕТ-201», в списке будет 28 объектов, из которых только 2 с необходимыми датами:
'4/26/2018 12:00:00 AM'
'4/27/2018 12:00:00 AM'
Другие 26 объектов с датой'1/1/0001 12:00:00 AM'
, мне не нужно
Как мне создать еще один список, который будет содержать объекты с итогами на нужные мне даты.Я думаю, мне нужно как-то создать логику для группировки объектов по датам, суммировать все поля и добавлять каждый объект в другой список
У меня есть следующая логика, которая создала предварительный список, содержащий 28 объектов:
for(int lineCnt = 1; lineCnt <. fileLines.Count(); lineCnt++)
{
if (fileLines[lineCnt].Contains("REPORT-201"))
{
report201 = new Report201();
report201= CreateReport201Data(lineCnt, fileLines);
listReports201.Add(report201);
lineCnt++;
}
}
Я попытался обобщить данные следующим образом:
report201Purchase = listReports201.Where(report201=> report201.ReportDate == reportDate).Sum(report201 => report201.PurchaseDec);
Но это дает мне только данные для объекта с последней датой отчета.Однако мне нужно иметь список с таким количеством дат, сколько у файла есть с итогами для полей в каждом объекте
Теперь я пытаюсь создать список, который будет содержать только объекты с конкретными датами с итогами дляэти даты:
var report201FinalList = (from report201Objects in listReports201
group report201Objects by new { report201Objects.ReportDate } into grouping
orderby grouping.Key.ReportDate
select new Report201
{
ReportDate = grouping.Key.ReportDate,
PurchaseDec = ?
QuasiCashDec = ?
...etc...
}).ToList();
Как я могу суммировать поля в объектах и добавить эти объекты в другой список или, если есть другой способ обработать то, что мне нужно?