Форум программистов, компьютерный форум, киберфорум
LINQ
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
141 / 182 / 44
Регистрация: 25.04.2012
Сообщений: 2,623
Записей в блоге: 5
1

Объясните механику работы селектора GroupJoin

14.02.2015, 18:07. Показов 1196. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Прочел тут https://msdn.microsoft.com/ru-... 10%29.aspx и тут http://professorweb.ru/my/LINQ/base/level2/2_7.php. Всё равно не до конца понял как он работает. Можете, желательно по шагам, подробно описать его работу?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.02.2015, 18:07
Ответы с готовыми решениями:

Бета-версии (Объясните механику созданий)
Уважаемые форумчане, Какова механика создания неполных версий игр из полных? Каким образом...

Объясните работу кода и селектора ~
Доброго времени суток. Учусь вот потихоньку. Есть код коряворукописный: <!DOCTYPE html> <html...

Квалификатор const: пояснить механику работы указанного кода
#include <iostream> int main(int argc, char *argv) { const int unchangable = 1; ...

Задача на GroupJoin
Исходная последовательность содержит сведения о клиентах фитнес-центра. Каждый элемент...

3
2152 / 1289 / 516
Регистрация: 04.03.2014
Сообщений: 4,092
14.02.2015, 19:09 2
Лучший ответ Сообщение было отмечено Alex9 как решение

Решение

Alex9, объединяет два множества по заданным ключам, группируя выходную последовательность по заданному ключу, и для каждого ключа формирует значение - множество (из второй последовательности "inner", это первый аргумент метода) только значение ключа каждого элемента этого множества должно совпадать с самим ключом группировки

там есть пример, на котором становится все ясно
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
            Person magnus = new Person { Name = "Hedlund, Magnus" };
            Person terry = new Person { Name = "Adams, Terry" };
            Person charlotte = new Person { Name = "Weiss, Charlotte" };
 
            Pet barley = new Pet { Name = "Barley", Owner = terry };
            Pet boots = new Pet { Name = "Boots", Owner = terry };
            Pet whiskers = new Pet { Name = "Whiskers", Owner = charlotte };
            Pet daisy = new Pet { Name = "Daisy", Owner = magnus };
 
            var people = new List<Person> { magnus, terry, charlotte };
            var pets = new List<Pet> { barley, boots, whiskers, daisy };
 
 
            var query = people.GroupJoin(pets,
                                 person => person,
                                 pet => pet.Owner,
                                 (person, petCollection) => // главное понять что тут petCollection это множество элементов из pets, у которых pet.Owner = person, это основное отличие от обычного Join
                                     new
                                     {
                                         OwnerName = person.Name,
                                         Pets = petCollection.Select(pet => pet.Name)
                                     });
 
            foreach (var obj in query)
            {
                // Output the owner's name.
                Console.WriteLine("{0}:", obj.OwnerName);
                // Output each of the owner's pet's names.
                foreach (string pet in obj.Pets)
                {
                    Console.WriteLine("  {0}", pet);
                }
            }
1
141 / 182 / 44
Регистрация: 25.04.2012
Сообщений: 2,623
Записей в блоге: 5
16.02.2015, 19:58  [ТС] 3
Что конкретно подразумевается под ключом?
0
2152 / 1289 / 516
Регистрация: 04.03.2014
Сообщений: 4,092
16.02.2015, 21:19 4
Лучший ответ Сообщение было отмечено Alex9 как решение

Решение

Alex9, то что ты выберешь для объединения.
как в Join, выбирается выражение или параметр из первого множества и из второго множества, и все элементы у которых эти два ключа совпадают между первым и вторым множеством объединяются .

это тот же Join, только с разницей что он группирует выходную последовательность, выше в коментах подробнее написано
1
16.02.2015, 21:19
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.02.2015, 21:19
Помогаю со студенческими работами здесь

GroupJoin генерирует множество запросов к БД
Попробовал использовать LinqConnect to PostgreSQL от DevArt, написал простой GroupJoin и очень...

15 задач на механику
Всем привет!

Задача на механику
Автомобиль движется замедленно по дуге радиусом R = 10,0 м так, что его тангенциальное at и...

Небольшая задачка на механику
На какую высоту поднимется сия конструкция,закрепленная верхним концом шарниром к неподвижной...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru