Вернуть значение по умолчанию, если Query is Empty - PullRequest
0 голосов
/ 11 октября 2018

Я создаю запрос linq, в котором мне нужно вернуть минимальное и максимальное значения лет и цен на автомобили.

Linqpad:

 var result = (from c in Cars           
                 where c.IsShowed == true
                       c.CarCod == carCod                                  
                 group c by c.CarCod into cg
                 select new  {
                 MinPrice = cg.Min(cv => cv.Price) ,
                 MaxPrice = cg.Max(cv => cv.Price),
                 MinYear =  cg.Min(cv => cv.Year),
                 MaxYear =  cg.Max(cv => cv.Year)
                  })
                 .SingleOrDefault();

result.Dump();

Как мне вернутьзначение по умолчанию, пример 0, для всех свойств MinPrice, MaxPrice, MinYear, MaxYear, если запрос пуст.

1 Ответ

0 голосов
/ 11 октября 2018

Вы должны объявить промежуточный Result класс для этого:

 var result = (from c in Cars           
               where c.IsShowed && c.CarCod == carCod                                  
               group c by c.CarCod into cg
               select new Result {
                   MinPrice = cg.Min(cv => cv.Price) ,
                   MaxPrice = cg.Max(cv => cv.Price),
                   MinYear =  cg.Min(cv => cv.Year),
                   MaxYear =  cg.Max(cv => cv.Year)
               })
               .SingleOrDefault() ?? new Result();
...