DefaultIfEmpty(), если значение не найдено - добавить значение по умалчиванию в коллекцию
Здравствуйте!
var service = payment?.Service.Where(s => s.Name == name[8])
.DefaultIfEmpty(new() { Name = name[8] })
.FirstOrDefault();
Данный запрос ищет объект в коллекции Service:
.Where(s => s.Name == name[8])
Если он не найден - использует значение по умалчиванию (создает новый объект):
.DefaultIfEmpty(new() { Name = name[8] })
Но созданный объект не додается в коллекцию в которой выполняется поиск.
Как можно реализовать добавление значения по умалчиванию в коллекцию?
Не используя DefaultIfEmpty() я делал это так:
var service = payment?.Service.FirstOrDefault(s => s.Name == name[8]);
if (service == null)
{
service = new()
{
Name = name[8]
};
payment?.Service.Add(service);
}
Но с DefaultIfEmpty код выглядит гораздо более читабельнее.
Спасибо за помощь!