Я создал следующее, чтобы объяснить мою проблему.
Имеется список с PayDates и периодами.Мне нужно создать новый список, содержащий 1 элемент для каждого периода, ближайшего к его дате платежа.
Таким образом, в приведенном примере список должен возвращать 2 элемента: «1-е число месяца» и «17-е число месяца», так как они наиболее близки к дате выплаты в их периоде
какие-либо предложения?
private static List<Schedule> GetFilteredScheduleList()
{
List<Schedule>oldScheduleList=new List<Schedule>();
oldScheduleList.Add(new Schedule { PayDate = new DateTime(2011, 1, 1), Id = 1, Name = "1st of the month", Period = SchedulePeriod.Monthly });
oldScheduleList.Add(new Schedule { PayDate = new DateTime(2011, 1, 4), Id = 1, Name = "4th of the month", Period = SchedulePeriod.Monthly });
oldScheduleList.Add(new Schedule { PayDate = new DateTime(2011, 1, 19), Id = 1, Name = "19th of the month", Period = SchedulePeriod.Monthly });
oldScheduleList.Add(new Schedule { PayDate = new DateTime(2012, 1, 3), Id = 1, Name = "3rd of each quarter", Period = SchedulePeriod.Quarterly });
oldScheduleList.Add(new Schedule { PayDate = new DateTime(2013, 1, 8), Id = 1, Name = "8th each quarter", Period = SchedulePeriod.Quarterly });
oldScheduleList.Add(new Schedule { PayDate = new DateTime(2011, 1, 17), Id = 1, Name = "17th of the month", Period = SchedulePeriod.Quarterly });
// Need to create a new list containing 1 item for each period that is nearest to its Pay Date.Starting point it's today's date.
// so the list should return 2 items "1st of the month" and "17th of the month" as they are the closest to their paydate in their period
List<Schedule> newScheduleList = oldScheduleList.Where(x=>x.PayDate)
}