Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
⊗csSpAqLj 168 of 509 menu
◀ ▶

Левое соединение в LINQ

Синтаксис join … into g с DefaultIfEmpty оставляет каждого пользователя слева. Без пары справа подставляется null - в выводе "none".

Ожидается "Ann:pen; Bob:none":

var users = new[] { new { Id = 1, Name = "Ann" }, new { Id = 2, Name = "Bob" } }; var orders = new[] { new { UserId = 1, Item = "pen" } }; var q = from u in users join o in orders on u.Id equals o.UserId into g from o in g.DefaultIfEmpty() select $"{u.Name}:{o?.Item ?? "none"}"; Console.WriteLine(string.Join("; ", q));

Без DefaultIfEmpty пользователь "Bob" из примера выше исчез бы. Осталась бы только строка "Ann:pen".

Возьмите три склада и одну поставку. Оставьте в результате каждый склад и выведите три строки.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить