如何使用linq在树视图中搜索元素?

时间:2009-03-22 14:37:31

标签: wpf linq treeview

我正在搜索从treeView获取TreeViewItem的linq-to-objects方法。

我想做这样的事情:

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


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

然后我想将孩子附加到此节点。

感谢。

1 个答案:

答案 0 :(得分:2)

您需要使用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,因此您不再需要强制转换。