c# - Winform Treeview find node by tag -


i have treeview display member possibly have duplicates, , tag not. example:

treenode node = new treenode(itemname); node.tag = itemid; //unique id item treeview1.nodes.add(node); 

so, when searching, know can search itemname using

treeview1.nodes.find(itemname, true); 

but how go searching via tag? there's no definition treeview1.nodes.where, no linq me :(

any suggestions on how search tag? :) thank you!

try this:

var result = treeview1.nodes.oftype<treenode>()                             .firstordefault(node=>node.tag.equals(itemid)); 

note: because said itemid unique, can use firstordefault search unique item. if it's not found result null.

update

to search nodes @ levels, can try using recursive method, this:

public treenode fromid(string itemid, treenode rootnode){    foreach(treenode node in rootnode.nodes){      if(node.tag.equals(itemid)) return node;      treenode next = fromid(itemid, node);      if(next != null) return next;    }    return null; } //usage     treenode itemnode = null; foreach(treenode node in treeview1.nodes){   itemnode = fromid(itemid, node);   if(itemnode != null) break; } 

Comments

Popular posts from this blog

c++ - CryptStringToBinary API behavior -

c++ - Correct method for redrawing a layered window -

java.util.scanner - How to read and add only numbers to array from a text file -