日期:2014-05-17  浏览次数:20968 次

C# 提取string中的内容并动态生成treeview
现有许多string类型的数据,都是表示目录的,比如:
"/.3/fedora-epel"
"/.3/fedora-epel/beta"
"/.3/fedora-epel/5"
"/.3/fedora-epel/5/SRPMS"
"/etc"
"/.3"
"/open/CAS"
"/open/Aircrack-ng"  
... ...

现在要做的是根据这些string数据,动态添加完成一个TreeView,以直观的方式显示该目录的层次结构。
TreeView控件这方面没问题,关键是如何提取这些string的内容,并判定父子节点的关系?新手求思路。

------解决方案--------------------
那些一两个字的估计都不知道自己说啥,楼主不用理会。

先从最简单效率最低的做起:
一个字符串按照“/”拆分,从头往后,第一个子字符串是树节点第一层,那么在树节点Nodes里面找(ContainsKey)有没有,有的话找到节点继续往下,没有的话插入节点往下;然后第二层,在前面那个节点下面去找有没有存在的节点,有的话找到节点继续往下,没有的话插入节点再往下……不重复了,字多也没钱。
然后下一个字符串,从根节点重新开始找……

对了插入和查找的时候可以用键,效率高一些。