Как я могу найти элемент в древовидной структуре с помощью linq? - PullRequest
1 голос
/ 22 марта 2009

Я ищу способ linq-to-objects для получения TreeViewItem из treeView.

Я хочу сделать что-то вроде этого:

var node =
            from TreeViewItem childs in tree.Items
            where  ((int) childs.Tag) == 1000   
            select childs;


string tag = ((TreeViewItem)node).Tag.ToString();

Тогда я хочу добавить детей в этот узел.

Спасибо.

1 Ответ

2 голосов
/ 22 марта 2009

Вы захотите использовать FirstOrDefault, чтобы извлечь первый соответствующий элемент из перечисления, созданного запросом. Убедившись, что он не нулевой, вы можете работать с ним, как обычно.

 var query =
        from TreeViewItem childs in tree.Items
        where  ((int) childs.Tag) == 1000   
        select childs;

 var node = query.FirstOrDefault();

 if (node != null)
 {
    ...
 }

Обратите внимание, что вам больше не понадобится приведение, поскольку FirstOrDefault вернет TreeViewItem.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...