powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Есть ли такая конструкция в Enumeration ?
12 сообщений из 12, страница 1 из 1
Есть ли такая конструкция в Enumeration ?
    #38988429
ProBiotek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет.

Подскажите, есть ли такая конструкция ?

Имеется

Код: c#
1.
2.
3.
4.
5.
6.
class child;

class parent
{
  list<child> childs;
}



Нужно распрямить это в единый список (видимо это будет Tuple<arent, Child>):

Код: c#
1.
2.
3.
4.
5.
<Parent 1><Child 1>
<Parent 1><Child 2>
<Parent 1><Child 3>
<Parent 2><Child 1>
<Parent 2><Child 2>



Можно ли это сделать через методы Enumerable ?
В голове крутится идея с SelectMany, но не уверен.

Пока же самым простым решением видится лишь два вложенных foreach
Код: c#
1.
2.
3.
foreatch (parents)
  foreach (childs)
  tupleList.add (...)
...
Рейтинг: 0 / 0
Есть ли такая конструкция в Enumeration ?
    #38988437
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ProBiotek,
А чем Dictionary<parent, List<child>> не нравится? Не нужен тут Tuple
...
Рейтинг: 0 / 0
Есть ли такая конструкция в Enumeration ?
    #38988444
ProBiotek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Axeleron,

В том и дело, что сейчас Dictionary, по сути, и есть (точнее List of Parent. где у каждого есть list of Child)

Нужно распрямить в одну линейную структуру
<Parent 1><Child 1>
<Parent 1><Child 2>
<Parent 1><Child 3>
<Parent 2><Child 1>
<Parent 2><Child 2>

Это Tuple. Ну или анонимный тип какой нибудь, не суть.
...
Рейтинг: 0 / 0
Есть ли такая конструкция в Enumeration ?
    #38988451
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ProBiotek,
Тогда либо Tuple либо класс со свойствами Parent и Child. А можно поинтересоваться для чего это нужно? Немного нестандартное требование 'выпрямлять'.
...
Рейтинг: 0 / 0
Есть ли такая конструкция в Enumeration ?
    #38988454
ProBiotek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AxeleronProBiotek,
Тогда либо Tuple либо класс со свойствами Parent и Child. А можно поинтересоваться для чего это нужно? Немного нестандартное требование 'выпрямлять'.

Вопрос был не в том "какую конструкцию выбрать". А в том, есть ли какой-то метод из Enumerable (тип SelectMany) который бы мог выпрямить в один этап "по красоте" - чем 2 вложенных foreach :)

Просто нужно получить на вывод один список:
"Место 1. Позиция 1"
"Место 1. Позиция 2"
"Место 1. Позиция 3"
"Место 2. Позиция 1"
...
Рейтинг: 0 / 0
Есть ли такая конструкция в Enumeration ?
    #38988463
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SelectMany именно для выпрямления и предназначен
...
Рейтинг: 0 / 0
Есть ли такая конструкция в Enumeration ?
    #38988464
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ProBiotek,
Код: c#
1.
var strings = (from parent in parents from child in parent.Children select parent.Location+ child.Position).ToList();
...
Рейтинг: 0 / 0
Есть ли такая конструкция в Enumeration ?
    #38988468
ProBiotek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Axeleron,

ок. спасибо так наверное подойдет.

плохо у меня с LInq и в selectMany в частности ))
...
Рейтинг: 0 / 0
Есть ли такая конструкция в Enumeration ?
    #38988471
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ProBiotekок. спасибо так наверное подойдет.
плохо у меня с LInq и в selectMany в частности ))Это и есть SelectMany только в другом синтаксисе ))
...
Рейтинг: 0 / 0
Есть ли такая конструкция в Enumeration ?
    #38988481
ProBiotek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,

так а как переписать на SelectMany ? )))
хотя думаю может просто так и оставить... SelectMany может сбивать с толку - сопровождать сложнее )
...
Рейтинг: 0 / 0
Есть ли такая конструкция в Enumeration ?
    #38988482
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ProBiotek,
Код: c#
1.
var string2 = parents.SelectMany(x => x.Children.Select(y => x.Location + y.Position)).ToList();
...
Рейтинг: 0 / 0
Есть ли такая конструкция в Enumeration ?
    #38988512
ProBiotek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Axeleron,

спасибо )
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Есть ли такая конструкция в Enumeration ?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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