我正在查询我的数据库以在图表中显示该字段(年龄)的前5个结果。它如预期显示,但我很难编码相应的日期。相反,我想查询数据库中的日期,并将其显示在图表上。将数据库数据存储在字典中以在图表上显示
由于我想显示前5个结果,我正在获取结果并对它们进行排序。我相信这会弄乱跟随年龄段日期的位置。我试图用字典来存储数据,但无法对其进行排序并获得密钥的前5个结果。我可以根据字典的关键字对其进行排序,并使用它来更新图表。或者有没有比使用字典更好的方法。
工作代码,我硬编码的日期:
//Query to dB and storing it in a list
PersonContext db = new PersonContext();
var xChartData = from x in db.Person
select x.Age;
List<double> topAge = new List<double>();
List<string> topFive = new List<string>();
foreach (var x in xChartData)
{
topAge.Add(x);
}
topAge.Sort();
for (int x = 1; x <= 5; x++)
{
topFive.Add(topAge.ElementAt(topAge.Count - x).ToString());
}
//Chart
var topAgefilePath = Server.MapPath("~/Chart_Files/topAge.jpg");
if (File.Exists(topAgefilePath))
{
File.Delete(topAgefilePath);
}
var myChart = new Chart(580, 400);
myChart.AddTitle("Top Age");
myChart.AddSeries(
chartType: "column",
xValue: new[] { "Date 1", "Date 2", "Date 3", "Date 4", "Date 5" },
yValues: topFive
);
myChart.Save(topAgefilePath);
试图查询日期和年龄,并与字典和排序存储。
var xChartData = from x in db.Person
select new { x.Age, x.Date };
Dictionary<double, DateTime> topAgeDict = new Dictionary<double, DateTime>();
foreach (var x in xChartData)
{
topAgeDict.Add(x.Age, x.Date);
}
@Trevor_zam - 已更新答案 – dbc