Структура коллекции

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Sirik
Perspicaz
Perspicaz
Аватара пользователя
 
Сообщения: 2280
Зарегистрирован: 19.02.2004 (Чт) 16:09
Откуда: Бердичев, Украина

Структура коллекции

Сообщение Sirik » 02.03.2014 (Вс) 13:47

Добрый день

Есть класс User, в нем пару полей и пару методов. Есть еще один класс Group, так же имеет несколько полей и методов. В классе Group есть коллекция классов User.
Структура такая:
--Group
--->User
--->User
--->User
Обходить вложенные классы достаточно просто, просто в цикле перебираю до нужного.
А вот как сделать такую конструкцию, как такую структуру грамотно сохранить, и как ее обходить (имею в виду перебирать в том же цикле), причем вложенность может достигать до 5 уровней?
--Group
--->User
--Group
--->User
--->User
--Group
--->User
--->User
--->User
--->User
--->User
--->User
Состояний же любви — десять: любовный взгляд, привязанность в мыслях, рождение желания, бессонница, исхудание, отвращение к предметам восприятия, утрата стыда, безумие, потеря сознания и смерть — вот их признаки

ger_kar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1957
Зарегистрирован: 19.05.2011 (Чт) 19:23
Откуда: Кыргызстан, Иссык-Куль, г. Каракол

Re: Структура коллекции

Сообщение ger_kar » 02.03.2014 (Вс) 14:17

Из написанного я понял, что требуется обход некого дерева, типа, как например обход дерева каталогов файловой системы? Если так, то можно использовать универсальную процедуру и вариантными типами с рекурсией и циклом перечисления.
Бороться и искать, найти и перепрятать

Sirik
Perspicaz
Perspicaz
Аватара пользователя
 
Сообщения: 2280
Зарегистрирован: 19.02.2004 (Чт) 16:09
Откуда: Бердичев, Украина

Re: Структура коллекции

Сообщение Sirik » 02.03.2014 (Вс) 15:25

Рекурсию не очень бы хотелось использовать... Я вот тут подумал, мб ввести еще одно "поле" в классе User и Group: туда ложить индекс принадлежности к родительской группе
Состояний же любви — десять: любовный взгляд, привязанность в мыслях, рождение желания, бессонница, исхудание, отвращение к предметам восприятия, утрата стыда, безумие, потеря сознания и смерть — вот их признаки

ger_kar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1957
Зарегистрирован: 19.05.2011 (Чт) 19:23
Откуда: Кыргызстан, Иссык-Куль, г. Каракол

Re: Структура коллекции

Сообщение ger_kar » 02.03.2014 (Вс) 15:40

Sirik писал(а):Рекурсию не очень бы хотелось использовать.
Ну в данном случае для 5 уровней вложенности существенной разницы не будет. Зато сам код будет предельно ясным и компактным. Я так так думаю. Можно конечно и поля, но тогда уж лучше не индекс (ключ) использовать, а сразу ссылку на элемент коллекции. Но в любом случае это будет лишнее нагромождение.
Бороться и искать, найти и перепрятать

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Структура коллекции

Сообщение Хакер » 02.03.2014 (Вс) 20:42

Так и не увидел в первоначальном посте примера вложенности.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

ger_kar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1957
Зарегистрирован: 19.05.2011 (Чт) 19:23
Откуда: Кыргызстан, Иссык-Куль, г. Каракол

Re: Структура коллекции

Сообщение ger_kar » 02.03.2014 (Вс) 20:45

Ну судя по схеме ее не видно, но смысл был видимо в этом, а иначе вообще бессмыслица получается.
Бороться и искать, найти и перепрятать

Sirik
Perspicaz
Perspicaz
Аватара пользователя
 
Сообщения: 2280
Зарегистрирован: 19.02.2004 (Чт) 16:09
Откуда: Бердичев, Украина

Re: Структура коллекции

Сообщение Sirik » 03.03.2014 (Пн) 9:03

форму почему-то убирает начальные пробелы в строках( Вот так должно быть:
Код: Выделить всё
.--Group
.   --->User
.   --Group
.     --->User
.     --->User
.   --Group
.     --->User
.     --->User
.     --->User
.     --->User
Состояний же любви — десять: любовный взгляд, привязанность в мыслях, рождение желания, бессонница, исхудание, отвращение к предметам восприятия, утрата стыда, безумие, потеря сознания и смерть — вот их признаки

Qwertiy
Доктор VB наук
Доктор VB наук
 
Сообщения: 2753
Зарегистрирован: 26.06.2011 (Вс) 21:26

Сообщение Qwertiy » 03.03.2014 (Пн) 10:00

Sirik писал(а):форму почему-то убирает начальные пробелы в строках(

Потому что надо использовать тег code...
      Или неразрывные пробелы (0160).

Sirik писал(а):как ее обходить

Читай про dfs.

Sirik
Perspicaz
Perspicaz
Аватара пользователя
 
Сообщения: 2280
Зарегистрирован: 19.02.2004 (Чт) 16:09
Откуда: Бердичев, Украина

Re: Структура коллекции

Сообщение Sirik » 13.03.2014 (Чт) 16:34

Сделал вот так: классам User и Group добавил поля ID_Par - индекс родительской группы. Плюс написал пару методом поиска по разным значениям и ключам.
Состояний же любви — десять: любовный взгляд, привязанность в мыслях, рождение желания, бессонница, исхудание, отвращение к предметам восприятия, утрата стыда, безумие, потеря сознания и смерть — вот их признаки


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: AhrefsBot и гости: 43

    TopList