如何解决从API填充微图获取响应\可观察的集合
我有一个工作的API,该API返回“班次”的集合(请在时间表的背景下考虑) 如以下摘录中突出显示的那样,已成功从API返回了数据。
[{"id":1006,"wI_Date":"2020-05-01T00:00:00","wI_Start_Time":"2020-05-01T08:00:00","wI_End_Time":"2020-05-01T17:00:00","name":"Surgery 1","rate":60.0000,"paid":"N ","revenue":"540 "},{"id":1007,"wI_Date":"2020-05-04T00:00:00","wI_Start_Time":"2020-05-04T08:00:00","wI_End_Time":"2020-05-04T17:00:00","name":"Medical Surgery 2","rate":45.0000,"revenue":"405 "},{"id":1008,"wI_Date":"2020-05-07T00:00:00","wI_Start_Time":"2020-05-07T08:00:00","wI_End_Time":"2020-05-07T17:00:00","name":"TEST Medical Surgery","revenue":"405"}]
我在整个日历年内(通过“ wI_Date”)的回报中都有100条记录,实际上随着时间的流逝,数据集的增长也将跨越多年。
我正在尝试找出如何按月\年对记录进行分组,因此可以将它们添加到Micorcharts.Bargraph的条目列表中-而无需在后端进行分组。 然后,它想总结该月的“收入”值,然后将该值作为条目传递给我的图表
班次定义为:
public class Shift
{
[PrimaryKey,AutoIncrement]
public int Id { get; set; }
public DateTime WiDate { get; set; }
public DateTime WiStartTime { get; set; }
public DateTime WiEndTime { get; set; }
public int Practice { get; set; }
public string Rate { get; set; }
public string Paid { get; set; }
public string Revenue { get; set; }
}
我对API的调用如下:
var content = await _client.GetStringAsync(URL);
var shifts= = JsonConvert.DeserializeObject<List<Shift>>(content);
OShifts = new ObservableCollection<Shift>(shifts);
所以我有一个成功的ObservableCollection。.我难以按年/日期进行分组,以添加到Micorcharts.Bargraph的条目中。
下面提供帮助的是一个如何填充图表的硬示例。
private List<Entry> _entries = new List<Entry>
{
new Entry(200)
{
Color = SKColor.Parse("#3333FF"),Label = "TEST LABEL 1",ValueLabel = "200",},new Entry(400)
{
Color = SKColor.Parse("#FF141F"),Label = "TEST LABEL 2",ValueLabel = "400",new Entry(300)
{
Color = SKColor.Parse("#49FF33"),Label = "TEST LABEL 3",ValueLabel = "300",MyBarChart.Chart = new BarChart { Entries = _entries };
任何人都有想法或示例代码。.
谢谢阅读。
解决方法
您可以这样做
var groupedShifts =
OShifts.GroupBy(sh => new { sh.WiDate.Year,sh.WiDate.Month },(key,group)=>new {
Period=`${key.Year}-${key.Month}`
SumRevenue = group.Sum(sh=>Decimal.Parse(sh.Revenue))
}).ToList();
我认为您的Shift.Revenue是安全的十进制值,不能再是其他值。 在这里,我返回一个对象列表,每个对象都有一个Period和SumRevenue,但是您可以根据需要自定义返回。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。