我基本上尝试使用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 "";
}