Итак, у меня есть коллекция 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? Вызывает ли это исключение?
Наверное, это никогда не должно произойти, но лучше безопасно, чем жалеть.