Итак, у меня есть коллекция struct
(это фактически WCF datacontract, но я предполагаю, что это не имеет никакого отношения здесь).
List<OptionalExtra> OptionalExtras;
OptionalExtra
является struct
.
public partial struct OptionalExtra
Теперь я запускаю следующую инструкцию:
OptionalExtra multiOptExtra = OptionalExtras.Where(w => w.Code == optExtra.Code).FirstOrDefault();
if (multiOptExtra != null)
{
}
Теперь это не скомпилируется:
оператор!= не применим к opperands типа OptionalExtra и
'<null>'
После небольшого поиска я понял это, потому что OptionalExtra
- struct
. Который, я считаю, не может быть нулевым, если он не определен как нулевой тип?
Итак, мой вопрос: если мой оператор where
не возвращает результатов, каков будет результат вызова FirstOrDefault
? Вызывает ли это исключение?
Наверное, это никогда не должно произойти, но лучше безопасно, чем жалеть.