Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > .NET > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Здесь нужно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 05.10.2019, 14:29   #1
Vamo
 
Регистрация: 17.02.2019
Сообщений: 3
По умолчанию Данные в виде дерева - кто знает библиотеку?

Чтобы как компонент Treeview, но не visual. И можно было привязывать собственные объекты. К примеру классы или кортежы.
Vamo вне форума   Ответить с цитированием
Старый 05.10.2019, 14:39   #2
Alex11223
Модератор
Заслуженный модератор
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,452
По умолчанию

Так что именно сделать-то надо?

Что мешает просто создать класс Node со свойством типа Node[] Children?
Alex11223 вне форума   Ответить с цитированием
Старый 05.10.2019, 15:47   #3
Vamo
 
Регистрация: 17.02.2019
Сообщений: 3
По умолчанию

А в Node есть возможность создавать потомков детей и обращаться к ним по индексу? Ато я сейчас погуглить не могу.
Vamo вне форума   Ответить с цитированием
Старый 05.10.2019, 15:52   #4
Alex11223
Модератор
Заслуженный модератор
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,452
По умолчанию

Node это ваш класс.

Стандартный List<T> например конечно позволяет легко добавлять элементы (или если хватит только во время инициализации, типа имутабельно, то передавайте IEnumerable в конструктор).
Alex11223 вне форума   Ответить с цитированием
Старый 05.10.2019, 16:09   #5
Vamo
 
Регистрация: 17.02.2019
Сообщений: 3
По умолчанию

Нужен именно как List<T> класс, но только дерево.
Vamo вне форума   Ответить с цитированием
Старый 05.10.2019, 18:36   #6
Alex11223
Модератор
Заслуженный модератор
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,452
По умолчанию

И? Я ж и говорю, сделайте List<Node> Children.
Или Dictionary если надо по именам обращаться.
Код:
    class Node
    {
        public Node(string value, IEnumerable<Node> children)
        {
            Value = value;
            Children = new List<Node>(children);
        }

        public Node(string value) : this(value, new List<Node>())
        { }

        public string Value { get; }
        public List<Node> Children { get; }

        public override string ToString()
        {
            return $"{Value}, [{String.Join(", ", Children)}]";
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            var tree = new Node("Hello", new []
            {
                new Node("world"), 
                new Node("We", new []
                {
                    new Node("need", new []
                    {
                        new Node("to", new []
                        {
                            new Node("go", new []
                            {
                                new Node("deeper"), 
                            }), 
                        }), 
                    }), 
                }), 
            });
            tree.Children.Add(new Node("new node"));
            tree.Children[1].Children.Insert(0, new Node("don't"));
            
            Console.WriteLine(tree);
        }
    }

Последний раз редактировалось Alex11223; 05.10.2019 в 19:21.
Alex11223 вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Файл в виде В-дерева Stalig Фриланс 2 15.05.2013 19:11
XSD - схема в виде дерева m9yt C# (си шарп) 2 30.04.2013 15:54
Таблица в виде дерева НП... PHP 4 15.06.2010 15:12
DBGridEh. представить данные из таблицы в виде дерева yellow87 Компоненты Delphi 0 19.02.2010 04:56
Меню в виде дерева pu4koff JavaScript, Ajax 7 16.10.2007 11:24


05:16.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.