C #: Combinando AddRange () y expresión Lambda

c# html-agility-pack lambda

Pregunta

Tengo una Collection de nodos, específicamente una colección de nodos de HTMLAgilityPack.HTMLNodeCollection . Sé que puedo extraer y almacenar información de los nodos haciendo:

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

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

Sin embargo, lo que me gustaría hacer es aplicar AddRange() , en lugar de agregar los elementos en un bucle foreach . Estoy tratando de usar una expresión lambda para hacer esto, pero no estoy lo suficientemente familiarizado con las expresiones lambda para hacerlo correctamente. Estoy tratando de combinar algo como

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

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

Sé que eso no tiene sentido sintáctico, pero no estoy seguro de si puedo hacer esto. Me gustaría simplemente Cast<string>() la colección, pero necesito extraer el texto de cada nodo.

¿Alguna idea sobre cómo poner esto en una expresión AddRange() ?

Respuesta aceptada

Estás buscando IEnumerable. Select() :

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



Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué