我基本上尝试使用 htmlagilitypack 解析一段 html 并使用 linq 将其放入对象中,以便与我的其他代码一起使用。我有以下两个代码片段,其中 #1 使用 linq 并且不起作用,但 #2 使用 for 循环并且可以工作。
除了使用 linq 之外,两段代码几乎相同。从这个意义上说,我想我在 linq 中错过了一些阻止我让它工作的东西?
感谢是否有人可以帮我看看
使用 linq - 它不起作用。res 最终为空
res = from li in ul.Elements("li").Where(i => GetClass(i) != "titles-h") select new Post() { title = li.Element("h2").InnerText, // .... };
没有 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 "";
}