1

我基本上尝试使用 htmlagilitypack 解析一段 html 并使用 linq 将其放入对象中,以便与我的其他代码一起使用。我有以下两个代码片段,其中 #1 使用 linq 并且不起作用,但 #2 使用 for 循环并且可以工作。

除了使用 linq 之外,两段代码几乎相同。从这个意义上说,我想我在 linq 中错过了一些阻止我让它工作的东西?

感谢是否有人可以帮我看看

  1. 使用 linq - 它不起作用。res 最终为空

    res = from li in ul.Elements("li").Where(i => GetClass(i) != "titles-h")
    select new Post()
    {
        title = li.Element("h2").InnerText,
        // ....
    };
    
  2. 没有 linq - 它有效

    foreach (var li in ul.Elements("li"))
    {
        if (GetClass(li) != "titles-h")
            ress.Add(new Post()
              {
                  title = li.Element("h2").InnerText,
                 // ....
              });
    }
    

GetClass 的实现

static string GetClass(HtmlNode n)
{
    if (n.Attributes["class"] != null)
        return n.Attributes["class"].Value;
    else
        return "";
}
4

0 回答 0