永远不会调用的If语句
本文关键字:If 语句 调用 永远 | 更新日期: 2023-09-27 18:06:05
我有这段代码
Category featured = new Category()
{
active = true,
Categories = new Category[0],
description = "",
identifier = "featured",
name = "Featured",
Products = new Product[0],
url = siteUrl,
};
StatisticCounters.CategoriesCounter();
下面是代码
private IList<Category> FeatureSubCategories(HtmlNode std, Category category,Category featured)
{
List<Category> categories = new List<Category>();
{
if (category.name == "Featured")
{
var nodes = std.SelectNodes("//span[contains(@class,'widget')] [position() <= 4]"); //TODO
foreach (var node in nodes)
{
string name = SiteParserUtilities.ParserUtilities.CleanText(System.Net.WebUtility.HtmlDecode(node.InnerText));
string url = node.Attributes["href"].Value;
string identifier = url.Split('/').Last().Replace(".html", "");
WriteQueue.write(string.Format(" Category [{0}].. {1} ", name, url));
IList<Category> sub = GetSubCategories(std);
Category c = new Category()
{
active = true,
Categories = sub.ToArray(),
description = "",
identifier = identifier,
name = name,
Products = new Product[0],
url = url,
};
StatisticCounters.CategoriesCounter();
categories.Add(c);
}
}
}
return categories;
}
出于某种原因,当我运行代码时,if语句if (category.name == "Featured")
从未被调用,我不确定为什么会这样。要开始解析xpath并将它们存储到一个数组中。谢谢你给予的任何帮助。
最好签入调试器。有时空格会引起问题。这是许多程序员都会犯的简单错误。当我们从数据库中获取数据时,可能会有一些领先的空间。当我们与某个值进行比较时(假设没有前导空格),如果不修剪这些空格,它将不会进行比较。例如
string s1 = "TEST";
string s2 = " TEST";
if (s1 == s2) {
Console.WriteLine("Equal");
}
请使用trim函数删除空白并进行比较。