Максимальное возвращаемое значение, если пустой запрос - PullRequest
137 голосов
/ 06 августа 2011

У меня есть этот запрос:

int maxShoeSize = Workers
    .Where(x => x.CompanyId == 8)
    .Max(x => x.ShoeSize);

Что будет в maxShoeSize, если в компании 8 вообще нет рабочих?

ОБНОВЛЕНИЕ:
Как изменить запрос, чтобы получить 0, а не исключение?

Ответы [ 11 ]

0 голосов
/ 07 декабря 2016

Вы можете использовать троицу в пределах .Max() для обработки предиката и установки его значения;

// assumes Workers != null && Workers.Count() > 0
int maxShoeSize = Workers.Max(x => (x.CompanyId == 8) ? x.ShoeSize : 0);

Вам необходимо обработать коллекцию Workers как пустую / пустую, если это возможно, но это будет зависеть от вашей реализации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...