2015-11-25 2 views
1

У меня есть программа, которая добавляет и удаляет нежелательную главу из дерева. Все, что я пишу в файл, который позже сгенерирован в PDF. Прежде всего, вот мой код файлов написание:Как настроить иерархию foreach loop для узлов treeview childer

private void button3_Click(object sender, EventArgs e) 
     { 
      { 
      var header = File.ReadAllText(@"C:\dir\header.tex"); 
      var footer = File.ReadAllText(@"C:\dir\footer.tex"); 
      var sb = new StringBuilder(); 

      sb.AppendLine(header); 

      foreach (TreeNode node in treeView1.Nodes) 
      { 

       var tag = node.Tag as string; 
       sb.AppendLine(string.IsNullOrEmpty(Text) ? node.Text : tag); 

      } 

      sb.AppendLine(footer); 
      File.WriteAllText(@"C: \dir\final.tex", sb.ToString()); 
     } 
      { 
      var chapaheader = File.ReadAllText(@"C:\dir\chapaheader.tex"); 
      var sba = new StringBuilder(); 
      sba.AppendLine(chapaheader); 
       foreach (TreeNode node in treeView1.Nodes) 
       { 
        foreach (TreeNode child in node.Nodes) 
        { 

         var tag = child.Tag as string; 
         sba.AppendLine(string.IsNullOrEmpty(Text) ? child.Text : tag); 
        } 
        File.WriteAllText(@"C: \dir\chapterA.tex", sba.ToString()); 
       } 

Я о 5chapter и я не знаю, как писать каждые разделы разделы в правом файле главы. На данный момент моя программа отлично работает, добавляя правые главы в основной файл, но главы. В файле полно других разделов раздела, а главы B, C, D, E пустые. Поэтому я думаю, что мне нужно сделать его иерархическим циклом foreach. Может, некоторые могут мне помочь?

Спасибо.

ответ

0

Вы можете попробовать с этим кодом, recursive method

IEnumerable<TreeNode> Iterate(TreeNodeCollection nodes) 
{ 
    foreach(TreeNode node in nodes) 
    { 
     yield return node; 

     foreach (var child in Iterate(node.Nodes) 
     { 
      yield return child; 
     } 
    } 
} 
Смежные вопросы