我正在使用HtmlAgilityPack来解析HTML页面并从选择列表中检索许多选项元素.
这GvsaDivisions是一个从POST结果返回原始html的方法,在问题的上下文中是不敬的
public IEnumerable<SelectListItem> Divisions(string season, string gender, string ageGroup)
{
var document = new HtmlDocument();
var html = GvsaDivisions(season);
document.LoadHtml(html);
var options = document.DocumentNode.SelectNodes("//select//option").Select(x => new SelectListItem() { Value = x.GetAttributeValue("value", ""), Text = x.NextSibling.InnerText });
var divisions = options.Where(x => x.Text.Contains(string.Format("{0} {1}", ageGroup, gender)));
if (ageGroup == "U15/U16")
{
ageGroup = "U15/16";
}
if (ageGroup == "U17/U19")
{
ageGroup = "U17/19";
}
return divisions;
}
Run Code Online (Sandbox Code Playgroud)
我正在观察的是......一旦options.Where()执行,分区包含一个结果.在测试ageGroup == "U15/U16"和分配后ageGroup = "U15/16",分区现在包含3个结果(原始1,添加2个新匹配的新值的标准ageGroup
任何人都可以解释这种异常现象吗?我希望将一个新的Where查询的结果调用到Union的原始结果,但它似乎是自动发生的.虽然结果是我想要的,但我无法解释它是如何发生的(或者它将继续以这种方式行事的确定性)
| 归档时间: |
|
| 查看次数: |
90 次 |
| 最近记录: |