Оператор join в LINQ
Метод Join сопоставляет элементы левой и правой
последовательности с одинаковым ключом и склеивает
их в результат. Если ключ не совпал, пара в вывод
не попадает.
У пользователя "Ann" и заказа "book"
общий ключ UserId. В консоли ожидается
строка "Ann:book":
var users = new[] { new { Id = 1, Name = "Ann" } };
var orders = new[] { new { UserId = 1, Item = "book" } };
var q = users.Join(orders, u => u.Id, o => o.UserId, (u, o) => $"{u.Name}:{o.Item}");
Console.WriteLine(q.First());
Заказ с UserId=2 без пользователя в
левой таблице исчезнет из результата - счётчик
станет 0:
var users = new[] { new { Id = 1, Name = "Ann" } };
var orders = new[] { new { UserId = 2, Item = "orphan" } };
Console.WriteLine(users.Join(orders, u => u.Id, o => o.UserId, (u, o) => u.Name).Count());
Соедините каталог товаров и цены по общему коду и выведите одну строку результата.