public void AddSeriesByDay(string name, RatingRecord[] records, int days) { if (name == null) { throw new ArgumentNullException(nameof(name)); } var today = DateTime.Today; var startDay = today.AddDays(-days); var data = records.Where(item => item.Rating.HasValue && item.Date < today && item.Date >= startDay) .Select( item => new DataPoint { Date = item.Date, Value = (float)item.Rating.Value }) .ToList(); if (data.Count > 0) { addedData = true; var byDate = data.ToLookup(item => item.Date.Date); for (int i = 0; i < days; i++) { var day = today.AddDays(-1 - i); if (!byDate.Contains(day)) { data.Add(new DataPoint { Date = day, Value = 0 }); } } dataset.AddSeries(name, data.ToArray()); } }