ChartData
public class ChartData {
public Series[] Series { get; set; }
}
Series
public class Series{
public Strind Name { get; set; }
public Data Data { get; set; }
}
Data
public class Data {
public object[] Points { get; set; }
}
Records
Date | Name | Value
date1 | T1 | 15
date1 | T2 | 20
date2 | T1 | 25
date2 | T2 | 30
date3 | T1 | 35
date3 | T2 | 40
And linq codes
(from d in MeterReadings
group d by new { name = d.Name } into g
select new ChartData
{
Series = (from s in g
select new Series
{
Name = g.Key.name,
Data = new Data(new object[] { g.Select(x => x.Value) })
}).ToArray()
}).FirstOrDefault();
Expected:
Name = T1 , Data = 15, 25, 35
Name = T2 , Data = 20, 30, 40
But Output:
Name = T1 , Data = 15, 25, 35
Name = T1 , Data = 15, 25, 35
Name = T1 , Data = 15, 25, 35
I cant find right codes to get expected. Could you review the linq codes? Where have done wrong?
Thanks in advance.
The problem is that you select new
ChartDatafor each grouping and then take first. Try this code: