Страница: 1 | 
		
		 
			   
			 
			 
			 
			 Страница: 1 | 
 
			
 
  
		
     
  
    
Вопрос: VB.NET Хранение древовидных данных.
     
    
Добавлено: 03.08.10 12:50
     
      
  
				
			  
					 
			
				 
    
		
       
    
Автор вопроса:  
    
 GDK
      
       
  
Какую коллекцию лучше использовать для хранения древовидных данных в памяти? 
 
    
Нужно хранить информацию о меню чужого приложения. Информацию от чужого приложения вытягиваю с помощью АПИ ф-ций. Меню имеет древовидную структуру item/subitem/subitem/...  Хочется найти удобное средство для её хранения. 
				
		
		
					 
			
				 
  
		
     
  
    
Ответы
     
    
Всего ответов: 13
     
      
  
		
	  
			 
	
		 
    
       
    
Номер ответа: 1 
      
Автор ответа:
 Artyom
![]()
![]()
![]()
![]()
![]()
![]()
![]()
Разработчик
Вопросов: 130
Ответов: 6602
      
 Профиль |  | #1
       
Добавлено:  03.08.10 13:50
       
    
       
  
Специальных древовидных структур в .NET нет, а так легко делается на обычном List(Of T)
 
    
		
	  
			 
	
		 
    
       
    
Номер ответа: 2 
      
Автор ответа:
 AgentFire
![]()
![]()
![]()
ICQ: 192496851 
Вопросов: 75
Ответов: 3178
      
 Профиль |  | #2
       
Добавлено:  03.08.10 14:28
       
    
       
  
Серьезно, сделай свою структуру. Не сложно, и не долго
 
    
		
	  
			 
	
		 
    
       
    
Номер ответа: 3 
      
Автор ответа:
 EROS
![]()
![]()
![]()
![]()
Вопросов: 58
Ответов: 4255
 Профиль |  | #3
       
Добавлено:  03.08.10 14:49
       
    
       
  
 
    
+1
там будет то всего 2 свойства..
Parent & Items
		
	  
			 
	
		 
    
       
    
Номер ответа: 4 
      
Автор ответа:
 Artyom
![]()
![]()
![]()
![]()
![]()
![]()
![]()
Разработчик
Вопросов: 130
Ответов: 6602
      
 Профиль |  | #4
       
Добавлено:  03.08.10 15:04
       
    
       
  
Parent не обязательно
 
    
		
	  
			 
	
		 
    
       
    
Номер ответа: 5 
      
Автор ответа:
 EROS
![]()
![]()
![]()
![]()
Вопросов: 58
Ответов: 4255
 Профиль |  | #5
       
Добавлено:  03.08.10 15:05
       
    
       
  
 
    
Это уже дело вкуса.. лично я предпочитаю иметь ссылку на родителя всегда под рукой..
		
	  
			 
	
		 
    
       
    
Номер ответа: 6 
      
Автор ответа:
 Artyom
![]()
![]()
![]()
![]()
![]()
![]()
![]()
Разработчик
Вопросов: 130
Ответов: 6602
      
 Профиль |  | #6
       
Добавлено:  03.08.10 15:15
       
    
       
  
Ну тогда нужно еще добавлять механизм, не допускающий зацикливания объектов через свойство Parent
 
    
		
	  
			 
	
		 
    
       
    
Номер ответа: 7 
      
Автор ответа:
 GDK
![]()
![]()
![]()
![]()
Вопросов: 13
Ответов: 348
      
 Профиль |  | #7
       
Добавлено:  03.08.10 15:21
       
    
       
  
Потом при заполнении будет типа структура в структуре? Можно маленький примерчик?
 
    
		
	  
			 
	
		 
    
       
    
Номер ответа: 8 
      
Автор ответа:
 GDK
![]()
![]()
![]()
![]()
Вопросов: 13
Ответов: 348
      
 Профиль |  | #8
       
Добавлено:  03.08.10 15:21
       
    
       
  
 
    
на ArrayList?
		
	  
			 
	
		 
    
       
    
Номер ответа: 9 
      
Автор ответа:
 Artyom
![]()
![]()
![]()
![]()
![]()
![]()
![]()
Разработчик
Вопросов: 130
Ответов: 6602
      
 Профиль |  | #9
       
Добавлено:  03.08.10 15:57
       
    
       
  
Это почти то же самое что и List, но List типизирован, ArrayList - нет (поэтому List лучше)
 
    
Поля переделать на свойства.
		
	  
			 
	
		 
    
       
    
Номер ответа: 10 
      
Автор ответа:
 AgentFire
![]()
![]()
![]()
ICQ: 192496851 
Вопросов: 75
Ответов: 3178
      
 Профиль |  | #10
       
Добавлено:  03.08.10 17:31
       
    
       
  
As NEW List чтоб не создавать вручную
 
    
		
	  
			 
	
		 
    
       
    
Номер ответа: 11 
      
Автор ответа:
 Eugy
![]()
![]()
![]()
![]()
![]()
![]()
![]()
Вопросов: 0
Ответов: 73
      
 Профиль |  | #11
       
Добавлено:  04.08.10 02:53
       
    
       
  
 
    
Помоему, самое удобное - это хендл HMENU.
Зачем какая-то структура, что мешает сделать дубликат 
		
	  
			 
	
		 
    
       
    
Номер ответа: 12 
      
Автор ответа:
 Eugy
![]()
![]()
![]()
![]()
![]()
![]()
![]()
Вопросов: 0
Ответов: 73
      
 Профиль |  | #12
       
Добавлено:  06.08.10 01:13
       
    
       
  
GDK писал(а):
 
    
Как вытягиваешь? Не знаешь, что возвращает GetMenu?
		
	  
			 
	
		 
    
       
    
Номер ответа: 13 
      
Автор ответа:
 GDK
![]()
![]()
![]()
![]()
Вопросов: 13
Ответов: 348
      
 Профиль |  | #13
       
Добавлено:  10.08.10 09:36
       
    
       
  
У меня на ВБА рабочий код есть. Я его сейчас перевожу на вб.нет. Когда сделаю, пример выложу. Главное не забыть.
 
    
ЗЫ Чужое приложение написано на С++.