2016-02-21 26 views
0

我很抱歉,因爲我仍然在學習LINQ和HtmlAgilityPack的進程訪問值(),但我想指定標題和鏈接已經創建的字符串值。換句話說,我如何訪問這個.ToList()的值?如何到LINQ .ToList內使用HtmlAgilityPack

下面是我的代碼:

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功能。當我打印的元素[0]我得到這樣的兩個值,請{link = www.link.url,標題=有些標題}

回答

2
imgTitle = elements[0].Title; 

基本上當你做

new 
{ 
    Link = img.Attributes["src"].Value, 
    Title = img.Attributes["alt"].Value 

} 

要創建具有2個屬性的匿名對象。

這份名單是這個匿名對象的列表。

elements[0]給你的第一個對象。你還可以用elements[0].Linkelements[0].Title訪問2個屬性

+0

謝謝我愛你! – Ammar

1

你真正擁有的元素是anonymous type有兩個屬性的列表,這樣你就可以訪問到Title如下:

imgTitle = elements[0].Title;