public DatedDataCollectionGen<double> GetPortionToDisplay(DatedDataCollectionGen<double> d_) { if (d_.Length == 0) return d_; int takeNumber = 0; switch (m_chartLength) { case ChartLength.Hist: takeNumber = int.MaxValue; break; case ChartLength.Month1: takeNumber = 21; break; case ChartLength.Month3: takeNumber = 63; break; case ChartLength.Month6: takeNumber = 126; break; case ChartLength.Year1: takeNumber = 252; break; case ChartLength.Custom: { if (CustomStartDate > CustomEndDate) return d_; var startDate = d_.Dates[0] < CustomStartDate ? CustomStartDate : d_.Dates[0]; var endDate = d_.Dates.Last() > CustomEndDate ? CustomEndDate : d_.Dates.Last(); return d_.GetSubValues(startDate, endDate); } } return d_.Length < takeNumber ? d_ : d_.GetValuesBetweenDates(d_.Dates[d_.Length - takeNumber], d_.Dates.Last()); }