public class ChartData { public string Title { get; set; } public IList SensorSeries { get; set; } } public IReadOnlyList ChartsData { get; set; } var trendCharts =from tr in step from st in tr.Statistics group new { Time = tr.RunStartTime.LocalDateTime, SensorName = st.Key, Value = st.Value } by st.Key into stat select new ChartData { Title = stat.Key, SensorSeries = stat .Select(SensorData => { var series = new XyDataSeries { SeriesName = SensorData.SensorName }; series.Append( stat.Select(rs => rs.Time), stat.Select(rs => rs.Value)); return new LineRenderableSeriesViewModel { DataSeries = series, StyleKey = $"TrendLineStyle", }; }).ToArray(), }; ChartsData = trendCharts.OrderBy(s => s.Title).ToList();