日期:2014-05-20  浏览次数:20800 次

用Linq语句建treeview 的问题
表结构如下  
BigType Type Name SmallType
HKIF    HHI  HHI1     A
HKIF    HHI  HHI2     A
HKIF    HHI  HHI3     B
HKIF    HHI  HHI4     B
HKIF    HSI  HSI1     B
HKIF    HSI  HSI2     B

如何做到如下效果(不用建HKIF节点):
HHI
   -A类型(自定义的节点名称)
    HHI1
       HHI2
   -B类型(自定义的节点名称)
    HHI3
       HHI4   
HSI
   -B类型(自定义的节点名称)
    HSI1     
       HSI2     

想用linq实现,现以能做到显示二层,最后分类不行, 请高手帮看下。
------解决方案--------------------
  //data为表数据 
var trees = data
    .Select(row => row.Type )
    .Distinct()
     .Select(d => new TreeNode(d, data
      .Where(row => row.Type == d)
      .Select(row => new TreeNode(row.Name)
          ).ToArray() )  ).ToArray();

 treeView1.Nodes.AddRange(treequery);

这个语句能做到如下
HHI
     HHI1
       HHI2
     HHI3
       HHI4   
HSI
     HSI1     
      HSI2     

------解决方案--------------------
http://bbs.csdn.net/topics/380239317
------解决方案--------------------
多谢版主回复,这个例子很有用,但是,这个treeview node 是对文件夹的操作,不合适我那情况吧

我那树要对整个table进行遍例吧,用linq可能很方便,

请指教/