powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / linq
5 сообщений из 5, страница 1 из 1
linq
    #39510351
INFINITs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Все добрый день.

Допустим есть классы
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
public class Client
{ public string Id;
   public string Name;
   public List<Addr> Address;
}

public class Addr
{
   public string Place;
   public string Status;
   public string Info;
}



Ест уже заполненный List<Client> cl


Необходимо вывести коллекцию cl.Name и для каждого такого клиента его Place и Info
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
foreach (var tt in cl.SelectMany(b=>b.Address).Where(b=>b.Status=="tytki").Select(b=>new{b.Place,b.Info}))
{
  Console.WriteLine(tt.Place+" "+tt.Info);
}
т.е. из куска выше сделать нечто в таком ввиде
foreach (var tt in cl.SelectMany(b=>new{b.Name, b.Address}).Where(b=>b.Address.Status=="tytki").Select(b=>new{b.Name,b.Address.Place,b.Address.Info}))
{
  Console.WriteLine(tt.Place+" "+tt.Info+" "+tt,Name);
}
...
Рейтинг: 0 / 0
linq
    #39510389
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
покажите пример того, что хотите получить в консоли
...
Рейтинг: 0 / 0
linq
    #39510576
INFINITs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Получается допустим есть
Клиет 1
ID1;
Name1;
Список: Place1; Status1; Info1;
Place2; Status1; Info2;
Place3; Status3; Info3;
Клиет 2
ID2;
Name2;
Список: Place1; Status1; Info5;
Place4; Status4; Info4;
Place5; Status5; Info5;

Хочу увидеть
Name1 Place1 Info1
Name1 Place1 Info2
Name2 Place1 Info5

Т.е. как сделать чтобы cross join/получить множество клиента и его листа?
...
Рейтинг: 0 / 0
linq
    #39510590
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: c#
1.
2.
3.
		cl.SelectMany(n => n.Address.Select(m => new {Client = n, Address = m}))
			.Where(n => n.Address.Status == "blabla")
			.Select(n => new {n.Client.Name, n.Address.Place, n.Address.Info});
...
Рейтинг: 0 / 0
linq
    #39510617
INFINITs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Огромное спасибо.
А то все тупил над данной строчкой
n => n.Address.Select(m => new {Client = n, Address = m})
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / linq
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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