【发布时间】:2017-05-25 12:23:39
【问题描述】:
我有两个日期列和两个大小列(一个大小列与一个日期列相关),如下表所示。现在我想要两个数组,在第一个数组中,它将按 Collected 排序,并显示 CollectedSize 的累积效果,与 Staged 和 StagedSize 相同。
必填:
收集的数组|
2016 年 1 月 1 日 | 1
2016 年 11 月 1 日 | 4
2016 年 12 月 1 日 | 6
2016 年 1 月 30 日 | 11
分段数组 |
2016 年 13 月 1 日 | 3
2016 年 14 月 1 日 | 7
18/1/2016 | 13
2016 年 16 月 1 日 | 20
表:
|收藏 |收集尺寸 |上演 |分段大小 |
| 2016 年 11 月 1 日 | 3 | 2016 年 14 月 1 日 | 4
| 2016 年 12 月 1 日 | 2 | 2016 年 13 月 1 日 | 3
| 2016 年 1 月 30 日 | 5 | 18/1/2016 | 7
| 2016 年 1 月 1 日 | 1 | 2016 年 16 月 1 日 | 6
目前使用如下代码:
public class ProductionDataOverTimeVM
{
public ProductionDataOverTimeVM()
{
Collected = new List<TimeChartXAxis>();
Staged = new List<TimeChartXAxis>();
}
public List<TimeChartXAxis> Collected { get; set; }
public List<TimeChartXAxis> Staged { get; set; }
}
public class TimeChartXAxis
{
public string x { get; set; }
public string y { get; set; }
}
var queryResults = context.Datasets.ToList();
ProductionDataOverTimeVM obj = new ProductionDataOverTimeVM();
long? collectedBytes = 0;
long? Staged = 0;
foreach (var dataset in queryResults.OrderBy(d => d.Collected))
{
if (dataset.Collected != null)
{
collectedBytes = collectedBytes + dataset.CollectedSize;
obj.Collected.Add(new TimeChartXAxis
{
x = dataset.Collected != null ? BasicHelpers.FromUTCDate(dataset.Collected, parms.Offset).Value.ToString("dd/M/yyyy") : null,
y = BasicHelpers.FormatBytesToSpecificFormat(collectedBytes, format, false)
});
}
}
foreach (var dataset in queryResults.OrderBy(d => d.Staged))
{
if (dataset.Staged != null)
{
Staged = Staged + dataset.StagedSize;
obj.Staged.Add(new TimeChartXAxis
{
x = dataset.Staged != null ? BasicHelpers.FromUTCDate(dataset.Staged, parms.Offset).Value.ToString("dd/M/yyyy") : null,
y = BasicHelpers.FormatBytesToSpecificFormat(Staged, format, false)
});
}
}
最好的方法是什么?
【问题讨论】:
标签: c# entity-framework linq