powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Выборка по группе совпадений
4 сообщений из 4, страница 1 из 1
Выборка по группе совпадений
    #37664266
avolik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
class User // пользователь
{
     int Id { get; set; }
     int Name { get; set; }
}

class Teen //подросток
{
     int UserId { get; set; }
     int Vozrast { get; set; }
}



Тип User представляет собой пользователя (любой: мужична, женщина, ребенок, пионер, старик, водитель, врач ... ).
Есть типы, расширяющие тип User (но не потомки, наследование здесь ни к чему).

Просто в типе Teen указана дополнительная информация, которая существует не для каждого объекта User.

Пример:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
List<User> users = new List<User>();
users.Add(new User(Id = 1, Name = "Саша"));
users.Add(new User(Id = 5, Name = "Петя"));
users.Add(new User(Id = 2, Name = "Оля"));
users.Add(new User(Id = 3, Name = "Миша"));
users.Add(new User(Id = 7, Name = "Коля"));
users.Add(new User(Id = 4, Name = "Наташа"));
users.Add(new User(Id = 6, Name = "Вася"));
users.Add(new User(Id = 8, Name = "Лора"));

List<Teen> teens= new List<Teen>();
teens.Add(new Teen(UserId = 3, Vozrast = 10));
teens.Add(new Teen(UserId = 5, Vozrast = 12));
teens.Add(new Teen(UserId = 6, Vozrast = 15));


Как из коллекции users получить все элементы, о которых есть запись в коллекции teens?

Как это на линкю (лямбда) выполнить?

Спасибо.
...
Рейтинг: 0 / 0
Выборка по группе совпадений
    #37664274
avolik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я так понимаю это запрос на выборку с джоином?! Но пока не могу сам составить.
...
Рейтинг: 0 / 0
Выборка по группе совпадений
    #37664322
Фотография buser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А скопировать ? Предложение join (Справочник по C#)
В MSDN и google есть все!
P.S.: средство для игрищ linqpad
А на счет ненужного наследования... и расширений... ну... даже и не знаю...
Код: 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.
34.
35.
class User // пользователь
{
	 public int Id { get; set; }
	 public string Name { get; set; }
}

class Teen //подросток
{
	 public int UserId { get; set; }
	 public int Vozrast { get; set; }
}

void Main()
{
	List<User> users = new List<User>();
	users.Add(new User(){Id = 1, Name = "Саша"});
	users.Add(new User(){Id = 5, Name = "Петя"});
	users.Add(new User(){Id = 2, Name = "Оля"});
	users.Add(new User(){Id = 3, Name = "Миша"});
	users.Add(new User(){Id = 7, Name = "Коля"});
	users.Add(new User(){Id = 4, Name = "Наташа"});
	users.Add(new User(){Id = 6, Name = "Вася"});
	users.Add(new User(){Id = 8, Name = "Лора"});

	List<Teen> teens= new List<Teen>();
	
	teens.Add(new Teen(){UserId = 3, Vozrast = 10});
	teens.Add(new Teen(){UserId = 5, Vozrast = 12});
	teens.Add(new Teen(){UserId = 6, Vozrast = 15});
	
	
	users.Where(usr => teens.Any(t => t.UserId == usr.Id)).Dump();
	(users.Join(teens, usr => usr.Id, teen => teen.UserId, (usr, teen) => new {teen.UserId, usr.Name, teen.Vozrast})).Dump();

}



долбанная бессонница
...
Рейтинг: 0 / 0
Выборка по группе совпадений
    #37664335
avolik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо, сейчас попробую!
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Выборка по группе совпадений
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]