You mean somethig like this?
public class WeekStartEnd
{
public DateTime Monday;
public DateTime Sunday;
}
DateTime StartDate = DateTime.Parse("02/12/2019");
DateTime EndDate = DateTime.Parse("03/16/2019");
DateTime SeriesEndDate= DateTime.Parse("12/31/2025");
DateTime firstMonday = Enumerable.Range(0, 7)
.SkipWhile(x => StartDate.AddDays(x).DayOfWeek != DayOfWeek.Monday)
.Select(x => StartDate.AddDays(x))
.First();
TimeSpan ts = (TimeSpan)(SeriesEndDate - firstMonday);
List<WeekStartEnd> dates = new List<WeekStartEnd>();
for(int i=0; i<ts.Days; i+=7)
{
dates.Add(new WeekStartEnd(){Monday=firstMonday.AddDays(i), Sunday=firstMonday.AddDays(i+6)});
}
Result:
Monday Sunday
2019-02-18 00:00:00 2019-02-24 00:00:00
2019-02-25 00:00:00 2019-03-03 00:00:00
2019-03-04 00:00:00 2019-03-10 00:00:00
...
2025-12-22 00:00:00 2025-12-28 00:00:00
2025-12-29 00:00:00 2026-01-04 00:00:00
[EDIT]
With Linq methods only:
int w = ts.Days / 7;
List<WeekStartEnd> dates = Enumerable.Range(0,w)
.Select(x=> new WeekStartEnd(){Monday=firstMonday.AddDays(x*7), Sunday=firstMonday.AddDays(x*7+6)})
.ToList();