簡體   English   中英

簡單的代碼即可從列表中獲取特定項目

[英]Simple code to get specific item from a list

我有a標簽列表。 我想要a包含字符串a標簽。 我使用下面的代碼,一切正常。

string mainLink = "";
List<HtmlNode> dlLink = new List<HtmlNode>();
dlLink = doc.DocumentNode.SelectNodes("//div[@class='links']//a").ToList();

foreach (var item in dlLink) {
  if (item.Attributes["href"].Value.Contains("prefile"))
   {
     mainLink = item.Attributes["href"].Value;
   }
}

但我想寫一個簡單的代碼

var dlLink = doc.DocumentNode.SelectNodes("//div[@class='link']//a").ToList().Where(x => x.Attributes["href"].Value.Contains("prefile")).ToList().ToString();

但這不起作用,我什么也沒得到。

您的foreach設置了mainLink字符串,但是您的linq鏈在List結果上使用了ToString

轉換代碼,您將得到以下內容:

mainLink  = doc.DocumentNode.SelectNodes("//div[@class='links']//a")
                            .Where(item => item.Attributes["href"].Value.Contains("prefile"))
                            .Select(item => item.Attributes["href"].Value)
                            .Last(); 

我使用Select僅獲取href值,並像您的foreach一樣獲取最后一個值,也許您需要驗證此最后一步,使用LastOrDefaultFirst等。

您也可以使用LastFirst代替Where條件:

mainlink = doc.DocumentNode.SelectNodes("//div[@class='links']//a")
                           .Last(item => item.Attributes["href"].Value.Contains("prefile"))
                           .Attributes["href"].Value;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM