私は基本的にhtmlagilitypackを使用してhtmlの一部を解析し、linqを使用してそれをオブジェクトに入れて他のコードで使用しようとしています。以下の2つのコードスニペットがあります。#1はlinqを使用して機能しませんが、#2はforループを使用して機能します。
linqの使用法を除いて、2つのコードはほぼ同じです。その意味で、私はそれを機能させるのを妨げる何かをlinqで見逃したと思いますか?
誰かが私が見るのを手伝ってくれるかどうか感謝します
linqを使用します-動作しません。resはnullになります
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 "";
}