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

nodesList.AddRange( string[] arr = x => nodes.ToArray()[x].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é