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

GroupJoin в LINQ

Метод GroupJoin для каждого левого ключа возвращает группу правых совпадений, не разворачивая её в плоский список как обычный join.

У "Ann" два заказа:

var users = new[] { new { Id = 1, Name = "Ann" } }; var orders = new[] { new { UserId = 1, Item = "pen" }, new { UserId = 1, Item = "ink" } }; var q = users.GroupJoin(orders, u => u.Id, o => o.UserId, (u, g) => $"{u.Name}:{g.Count()}"); Console.WriteLine(q.First());

У "Ann" один заказ, у "Bob" ни одного. Пустая группа даёт 0, но пользователь слева не пропадает:

var users = new[] { new { Id = 1, Name = "Ann" }, new { Id = 2, Name = "Bob" } }; var orders = new[] { new { UserId = 1, Item = "pen" } }; var q = users.GroupJoin(orders, u => u.Id, o => o.UserId, (u, g) => g.Count()); Console.WriteLine(string.Join(",", q));

Для каждого отдела выведите его название и число сотрудников.

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