感觉你们推荐的还没我自己这个好用~~~ LoadTree(0, treeView1.Nodes[0], dt.Rows.Cast<DataRow>().ToList()); private void LoadTree(int index, TreeNode preNode, List<DataRow> rows) { var query = from x in rows group x by x[index] into g select new { Key = g.Key, item = g }; query.ToList().ForEach(x => { TreeNode node = new TreeNode(x.Key.ToString()); preNode.Nodes.Add(node); if (index < dt.Columns.Count - 1) LoadTree(index + 1, node, x.item.ToList()); }); }
http://www.cnblogs.com/sungcong/archive/2013/01/05/2845223.html
http://www.cnblogs.com/shuyajun/archive/2012/05/11/2495809.html
LoadTree(0, treeView1.Nodes[0], dt.Rows.Cast<DataRow>().ToList()); private void LoadTree(int index, TreeNode preNode, List<DataRow> rows)
{
var query = from x in rows
group x by x[index] into g
select new { Key = g.Key, item = g };
query.ToList().ForEach(x =>
{
TreeNode node = new TreeNode(x.Key.ToString());
preNode.Nodes.Add(node);
if (index < dt.Columns.Count - 1)
LoadTree(index + 1, node, x.item.ToList());
});
}