РЕДАКТИРОВАТЬ: DefaultIfEmpty
уже имеет подходящую перегрузку.
Нельзя указать значение по умолчанию для FirstOrDefault()
, но вы всегда можете использовать:
// Select the first image, or a default otherwise
var image = query.FirstOrDefault() ?? defaultImage;
Или вы можете написать собственную перегрузку FirstOrDefault
, которая , конечно, принимает значение по умолчанию.Как то так:
public static T FirstOrDefault<T>(this IEnumerable<T> source,
T defaultValue)
{
// This will only ever iterate once, of course.
foreach (T item in source)
{
return item;
}
return defaultValue;
}