Подтвердить что ты не робот

Что FirstOrDefault для DateTime в Linq?

Если у меня есть запрос, который возвращает DateTime, какое значение FirstOrDefault()? Есть ли общий способ получить значение по умолчанию для С# скаляра? Пример:

var list = (from item in db.Items 
    where item.ID==1234
    select item.StartDate).FirstOrDefault();

Изменить: Предположим, что столбец StartDate не может быть нулевым.

4b9b3361

Ответ 1

Общий способ получения значения по умолчанию для данного типа общего типа:

default(T)

где T - это типичный параметр типа. Для ссылочных типов это даст null. Для типов значений это приведет к нулевому экземпляру значения. Для DateTime s это будет эквивалентно DateTime.MinValue.

Ответ 2

default(DateTime) - 1/1/0001 12:00:00 AM.

В вашем коде основная часть вашего запроса - это IEnumerable из дат начала из вашей базы данных. Ваш вызов FirstOrDefault() возвращает либо первый элемент перечислимого, либо значение по умолчанию его типа, если в перечисляемом элементе нет элементов.

Если тип StartDate действительно является датой и в перечислимом элементе нет элементов, то результатом будет приведенное выше значение datetime.

Ответ 3

DateTime.MinValue

Ответ 4

Im, угадывая его default(DateTime), который im guessing (снова) DateTime.MinValue

Ответ 5

Это полночь, в начале 1-10001.