【问题标题】:how to remove rows with specific character in c#如何在c#中删除具有特定字符的行
【发布时间】:2017-09-26 09:26:15
【问题描述】:

我正在尝试将一些链接从网站 html 文件导出到 datagridview。问题是 html 文件中的一些 href 属性值是:#.
我想删除值为# 的行。我尝试使用自爆代码,但它不起作用,也没有任何反应。

 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);                  
        }
    } 

【问题讨论】:

  • 一开始添加行时为什么不过滤掉它们?
  • 您没有收到任何错误/警告吗?因为您无法修改在 foreach 循环中迭代的集合
  • @Fildor 我该怎么做,我不知道如何过滤它们。
  • @Pikoh 不,没有任何错误。代码编译运行没有问题。
  • var temp = pages.Attributes["href"].Value; if( temp != "#" ) { dgv.Rows.Add(temp) } 对于初学者。

标签: c# datagridview character


【解决方案1】:

我首先在添加行时将它们过滤掉。

 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);
            }  
        }     
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-08-18
    • 2020-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多