この再帰呼び出しをLINQに変換したいのですが、最後の2つの条件を実行する方法がわかりません。これらの最後の2つの条件を追加する方法についてアドバイスしてください。
private void findGoogleOrganic(HtmlNode node)
{
if (node.Attributes["class"] != null)
{
if (node.Attributes["class"].Value.ToString().Contains("r ld"))
{
String tmp;
tmp = node.ParentNode.InnerHtml.ToString();
bool condition1 = false;
bool condition2 = false;
if (tmp != null)
{
**condition1 = tmp.Contains("qcp47e");
condition2 = tmp.Contains("r ld");**
}
**if (condition1 == false && condition2 == true)**
{
GoogleOrganicResults.Add(new Result(URLGoogleOrganic, Listing, node, SearchEngine.Google, SearchType.Organic, ResultType.Website));
}
}
}
if (node.HasChildNodes)
{
foreach (HtmlNode children in node.ChildNodes)
{
findGoogleOrganic(children);
}
}
}
これが最後の2つの条件なしでの私の最初の試みです:
private void findGoogleOrganicLINQ(HtmlNode node)
{
var results = node.Descendants()
.Where(x => x.Attributes["class"] != null &&
x.Attributes["class"].Value.Contains("r ld"))
.Select(x => new Result(URLGoogleLocal, Listing, x, SearchEngine.Google, SearchType.Local, ResultType.GooglePlaces));
foreach (Result x in results)
{
GoogleOrganicResults.Add(x);
}
}