Я знаю, что это старый вопрос, и принятый ответ работает, но этот вопрос ответил на мой вопрос о том, приведет ли такой пустой набор к исключению или к результату default(int)
.
Однако принятый ответ, хотя он и работает, не является идеальным решением IMHO, которое здесь не приводится. Таким образом, я предоставляю его в своем собственном ответе на благо любого, кто его ищет. Исходный код
Ор был:
int maxShoeSize = Workers.Where(x => x.CompanyId == 8).Max(x => x.ShoeSize);
Это, как я хотел бы написать его, чтобы предотвратить исключения и предоставить результат по умолчанию:
int maxShoeSize = Workers.Where(x => x.CompanyId == 8).Max(x => x.ShoeSize as int?) ?? 0;
Это приводит к тому, тип возвращаемого значения функции Max
в int?
, что позволяет получить результат null
, а затем ??
заменяет результат null
на 0
.
Naor : Вы слышали о LINQPad? –
Любой, кто проголосует, опишите почему. – Naor
не мой нисходящий, но, по-видимому, потому, что вы могли легко убедиться в себе. –