2017-09-26 5 views
0

J'essaie d'exporter des liens d'un fichier html de site Web à un datagridview. Le problème est que certaines valeurs d'attributs href dans le fichier html sont: #.
Je souhaite supprimer les lignes avec la valeur #. J'ai essayé de sauter du code mais ça ne marche pas et rien ne se passe.comment supprimer des lignes avec un caractère spécifique dans C#

private void findsuburls(string str,DataGridView dgv) 
    { 
     HtmlWeb web = new HtmlWeb(); 
     HtmlAgilityPack.HtmlDocument document = web.Load(str); 
     foreach (HtmlNode pages in document.DocumentNode.SelectNodes("//ul[@class='pagination ']/li/a[@href]")) 
     { 
      dgv.Rows.Add(pages.Attributes["href"].Value); 
     } 

     foreach (DataGridViewRow row in dgv.Rows) 
     { 
      if (row.Cells[0].Value == "#") 
       dgv.Rows.Remove(row);     
     } 
    } 
+1

Pourquoi ne pas les filtrer lors de l'ajout de lignes en premier lieu? – Fildor

+0

Et ne recevez-vous aucune erreur/avertissement? parce que vous ne pouvez pas modifier la collection itérée dans une boucle 'foreach' – Pikoh

+0

@Fildor comment puis-je faire cela, je ne sais pas comment les filtrer. –

Répondre

1

Je les filtre lors de l'ajout de lignes en premier lieu.

private void findsuburls(string str,DataGridView dgv) 
    { 
     HtmlWeb web = new HtmlWeb(); 
     HtmlAgilityPack.HtmlDocument document = web.Load("http://goldtag.net"+str); 
     foreach (HtmlNode pages in document.DocumentNode.SelectNodes("//ul[@class='pagination ']/li/a[@href]")) 
     { 
      var temp = pages.Attributes["href"].Value; 
      if (temp != "#") 
      { 
       dgv.Rows.Add(temp); 
      } 
     }  
    }