Nab*_*egh 0 c# lambda html-agility-pack
我正在开发一个从网站上检索一些数据的项目.为了完成这项工作,我决定使用HtmlAgilityPack.
一切正常,除了我面临的与lambda表达式相关的问题.我收到的错误是
无法将类型'System.Collections.Generic.IEnumerable'隐式转换为'bool'
var page = RetrievePage(url); //retrieve page
var document = GetDocument(page); //get the document
var optionNodes = document.Result.DocumentNode.SelectNodes("???"); //Select nodes based on selector
//remove empty lines
var filteredNodes = optionNodes[0].ChildNodes.Where(n => n.InnerText.Trim() != string.Empty);
using (var nodes = filteredNodes.GetEnumerator())
{
while (nodes.MoveNext())
{
//error
var children = nodes.Current.ChildNodes.Where(c => c.Attributes.Where(t => t.Value == "???"));
}
}
Run Code Online (Sandbox Code Playgroud)
感谢您的帮助.
内部将返回行.外部where只能是一个具有布尔值的表达式.所以你必须改变这个:
var children = nodes.Current.ChildNodes
.Where(c => c.Attributes.Where(t => t.Value == "???"));
Run Code Online (Sandbox Code Playgroud)
对此:
var children = nodes.Current.ChildNodes
.Where(c => c.Attributes.Any(t => t.Value == "???"));
Run Code Online (Sandbox Code Playgroud)
或这个:
var children = nodes.Current.ChildNodes
.Where(c => c.Attributes.All(t => t.Value == "???"));
Run Code Online (Sandbox Code Playgroud)
或这个:
var children = nodes.Current.ChildNodes
.Where(c => c.Attributes.Where(t => t.Value == "???").Count()>0);
Run Code Online (Sandbox Code Playgroud)
参考:
归档时间: |
|
查看次数: |
46 次 |
最近记录: |