【发布时间】:2019-10-13 15:15:36
【问题描述】:
我想显示从 1 到 23 的数字刻度。目前,我有如下图所示的数据,
如果数字等于 1 = 总共有 40 个,并且我想添加比例编号,如果数字没有任何数据,它将返回默认 0。如何添加该比例编号?
public List<NumberModel> GetHourTime(Number model)
{
var result = new List<NumberModel>();
int[] values = new int[] {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23};
var hours = this.Context.XNumbers).Where(x => (string.IsNullOrEmpty(model.Code))).Select(x => x);
result = hours.ToList().ToNumberModels().OrderBy(x => x.Hour)
.GroupBy(x => x.Hour)
.Select(x => new XNumber
{
Total = x.Sum(item => item.Total),
Hour = x.Key
}).AsEnumerable().Take(30).ToList();
return result;
}
预期的结果会是这样的
1=40,
2=0,
3=23,
4=0,
5=0,
6=12,
7=0
........
以此类推...直到 23 日
这里是 NumberModel 类
public class NumberModel
{
public Guid Id { get; set; }
public int Total { get; set; }
public int Hour { get; set; }
}
【问题讨论】:
-
您的代码有语法错误。还请提供
XNumbers和Number类的示例实现,以及调用GetHourTime()方法的代码。 -
我成功得到结果,但它没有显示1-23的比例,它只显示在数据库中
-
你永远不需要像
values这样创建一个数组。查找“for”循环的语法并使用一个。 -
你能给我举个例子吗? @iakobski
-
当然,我必须把它放在格式化的答案中