C #: combinaison des expressions AddRange () et Lambda

c# html-agility-pack lambda

Question

J'ai une Collection de nœuds, en particulier une collection de nœuds HTMLAgilityPack.HTMLNodeCollection . Je sais que je peux extraire et stocker des informations à partir des nœuds en faisant:

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

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

Cependant, ce que je voudrais faire est d'appliquer AddRange() , plutôt que d'ajouter les éléments dans une boucle foreach . J'essaie d'utiliser une expression lambda pour le faire, mais je ne connais pas suffisamment les expressions lambda pour le faire correctement. J'essaie de combiner quelque chose comme

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

Je sais que cela n’a aucun sens syntaxique, mais je ne suis pas sûr de pouvoir le faire. Je voudrais juste Cast<string>() la collection, mais je dois extraire le texte de chaque nœud.

Des idées sur la façon de mettre cela dans une expression AddRange() ?

Réponse acceptée

Vous cherchez IEnumerable. Select() :

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


Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi