如何使用 HtmlAgilityPack 访问 Linq .ToList() 中的值
How to access values within a Linq .ToList() using HtmlAgilityPack
我很抱歉,因为我仍在学习 Linq 和 HtmlAgilityPack,但我正在尝试将 Title 和 Link 分配给已创建的字符串值。换句话说,如何访问此 .ToList() 的值?
下面是我的代码:
string imgTitle;
string imgLink;
private void getCaption(string txt)
{
HtmlDocument htmlDoc = new HtmlDocument();
htmlDoc.LoadHtml("<html><head></head><body>" + txt + "</body></html>");
if (htmlDoc != null)
{
var elements = htmlDoc.DocumentNode.SelectNodes(@"//img[@src]").Select(img => new
{
Link = img.Attributes["src"].Value,
Title = img.Attributes["alt"].Value
}).ToList();
}
imgTitle = elements[0]["Title"]; //I thought i could do this
抱歉提出了一个愚蠢的问题,但我还没有看到任何关于 Linq 工作原理和 ToList 函数的好的解释。当我打印 elements[0] 时,我得到了两个这样的值,{Link = www.link.url, Title = Some title}
imgTitle = elements[0].Title;
基本上当你
new
{
Link = img.Attributes["src"].Value,
Title = img.Attributes["alt"].Value
}
您正在创建一个具有 2 个属性的匿名对象。
列表是这个匿名对象的列表。
elements[0]
给你第一个对象。您可以使用 elements[0].Link
和 elements[0].Title
访问这两个属性
您在元素中真正拥有的是具有两个属性的 anonymous type 的列表,因此您可以按如下方式访问 Title
:
imgTitle = elements[0].Title;
我很抱歉,因为我仍在学习 Linq 和 HtmlAgilityPack,但我正在尝试将 Title 和 Link 分配给已创建的字符串值。换句话说,如何访问此 .ToList() 的值?
下面是我的代码:
string imgTitle;
string imgLink;
private void getCaption(string txt)
{
HtmlDocument htmlDoc = new HtmlDocument();
htmlDoc.LoadHtml("<html><head></head><body>" + txt + "</body></html>");
if (htmlDoc != null)
{
var elements = htmlDoc.DocumentNode.SelectNodes(@"//img[@src]").Select(img => new
{
Link = img.Attributes["src"].Value,
Title = img.Attributes["alt"].Value
}).ToList();
}
imgTitle = elements[0]["Title"]; //I thought i could do this
抱歉提出了一个愚蠢的问题,但我还没有看到任何关于 Linq 工作原理和 ToList 函数的好的解释。当我打印 elements[0] 时,我得到了两个这样的值,{Link = www.link.url, Title = Some title}
imgTitle = elements[0].Title;
基本上当你
new
{
Link = img.Attributes["src"].Value,
Title = img.Attributes["alt"].Value
}
您正在创建一个具有 2 个属性的匿名对象。
列表是这个匿名对象的列表。
elements[0]
给你第一个对象。您可以使用 elements[0].Link
和 elements[0].Title
您在元素中真正拥有的是具有两个属性的 anonymous type 的列表,因此您可以按如下方式访问 Title
:
imgTitle = elements[0].Title;