Как получить точный результат списка значений, используя цикл - PullRequest
0 голосов
/ 20 октября 2019

это моя база данных, в которой перечислены 5 результатов меню,

enter image description here

что я хочу, если дата не равна текущей дате (DateTime.Now), результат будет нулевым, например:

enter image description here

Вот мой код того, что я пытаюсь сделать,

for (int i = 1; i <= DateTime.Now.ToShortDateString().Length; i++)

            if (list.Any(x => x.Date.ToShortDateString() == i.ToString() ))
        {
            list.ToList().Add(new MenuModel
            {
                Total = list.First(x => x.Date.ToShortDateString() == i.ToString()).Total,
                Location = list.First(x => x.Date.ToShortDateString() == i.ToString()).Location,

            });
        }
        else
        {
            list.Add(new MenuModel
            {
                Total = list.First(x => x.Date.ToShortDateString() != i.ToString()).Total=0,
                Location = list.First(x => x.Date.ToShortDateString() != i.ToString()).Location,

            });

        }

но результат, который я получаю, выглядит следующим образом:

enter image description here

Местоположение не показывает реальное значение, которое будетбыть A, B, C, D и E .. Как получить точное значение местоположения?

1 Ответ

2 голосов
/ 20 октября 2019

Что вам действительно нужно, так это маленькая linq магия. Линк ниже Получите Total на основе текущей даты к фактическому значению, а если не к текущей дате, то установите на 0.

DateTime date = DateTime.Today;
var menus = list.Select(l => new MenuModel
            {
                Total = l.Date.Date == date ? l.Total : 0,
                Location = l.Location,
            });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...