Как показать номер шкалы между 1-23 - PullRequest
0 голосов
/ 13 октября 2019

Я хотел бы показать шкалу чисел от 1-23. на данный момент у меня есть данные, подобные изображению ниже,

enter image description here

Если число равно 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; }
}

1 Ответ

0 голосов
/ 13 октября 2019

Сигналы тревоги должны звучать в тот момент, когда вы пишете список последовательных номеров как часть вашей программы. Получить компьютер, чтобы сделать это за вас. Простой цикл for сделает это.

Я не совсем понимаю вашу модель данных, но как только у вас есть список NumberModel, вы можете вывести их в нужном вам формате:

var data = new List<NumberModel>
{
    // Sample data
    new NumberModel{Hour=1,Total=40},
    new NumberModel{Hour=3,Total=23},
    new NumberModel{Hour=6,Total=12}
};
for (int i=1; i<=23; ++i)
{
    Console.Write($"{i}=");
    Console.WriteLine (data.Any(x => x.Hour==i)
        ? data.First(x => x.Hour==i).Total
        : 0);
}

Вывод:

1=40
2=0
3=23
4=0
5=0
6=12
7=0
8=0
...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...