Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Новый участник


Сообщения: 16
Благодарности: 0

Профиль | Отправить PM | Цитировать


я догадался, но реализовать это у меня не получается

Вот решение без рекурсии, но глубина обхода ограничена кодом.
Код: Выделить весь код
public class Trees
    {
        public Trees()
        {
        }
        public Trees(int NoteID, int ParentNoteID, string NoteName)
        {
            this.NoteID = NoteID;
            this.ParentNoteID = ParentNoteID;
	    this.NoteName = NoteName;
        }
        public int NoteID { get; private set; }
        public string NoteName { get; private set; }
        public int ParentNoteID { get; private set; }
    }
private void treeNode()
{
	List<Trees> l = new List<Trees>();
	foreach (TreeNode childChildNode in treeView1.Nodes)
	{
		l.Add(new Trees(1, 0, treeNode.Text));
		foreach (TreeNode childChildNode in treeNode.Nodes)
            	{
                	l.Add(new Trees(2, 1, treeNode.Text));
	                foreach (TreeNode c in childChildNode.Nodes)
	                {
	                    l.Add(new Trees(3, 2, treeNode.Text));
			    //и так далее для обхода в глубину, а глубина должна быть произвольной
	                }
            	}
        }
}
Вот такой рекурсивный метод, но как еги применить к моей ситуации я пока не представляю.
Код: Выделить весь код
private List<TreeNode> GetAllNodes(TreeNode Node)
        {
            
            List<TreeNode> list = new List<TreeNode>();
            list.Add(Node);
            foreach (TreeNode n in Node.Nodes)
                list.AddRange(GetAllNodes(n));
            return list;
        }

Последний раз редактировалось Drongo, 19-12-2013 в 20:49.


Отправлено: 14:28, 19-12-2013 | #3