C #: combinazione di AddRange () e Lambda Expression

c# html-agility-pack lambda

Domanda

Ho una Collection di nodi, in particolare una raccolta di nodi HTMLAgilityPack.HTMLNodeCollection . So che posso estrarre e memorizzare informazioni dai nodi facendo:

List<string> nodesList = new List<string>();

var nodes = myFile.DocumentNode.SelectNodes(file_path);
foreach (var node in nodes)
    nodesList.Add(node.InnerText);

Tuttavia, ciò che mi piacerebbe fare è applicare AddRange() , piuttosto che aggiungere gli elementi in un ciclo foreach . Sto provando a usare un'espressione lambda per farlo, ma non sono abbastanza familiare con le espressioni lambda per farlo correttamente. Sto cercando di combinare qualcosa come

nodesList.AddRange( string[] arr = x => nodes.ToArray()[x].InnerText );

So che non ha senso sintattico, ma non sono sicuro di poterlo fare. Vorrei solo eseguire il Cast<string>() della raccolta, ma ho bisogno di estrarre il testo da ciascun nodo.

Qualche idea su come metterla in AddRange() ?

Risposta accettata

Stai cercando IEnumerable. Select() :

nodesList.AddRange(nodes.Select(node => node.InnerText))


Related

Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché
Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché