C #: AddRange () und Lambda-Ausdruck kombinieren

c# html-agility-pack lambda

Frage

Ich habe eine Collection von Knoten, insbesondere eine Sammlung von HTMLAgilityPack.HTMLNodeCollection Knoten. Ich weiß, dass ich Informationen aus den Knoten extrahieren und speichern kann, indem ich Folgendes tue:

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

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

Allerdings möchte ich AddRange() anwenden, anstatt die Elemente in einer foreach Schleife hinzuzufügen. Ich versuche einen Lambda-Ausdruck zu verwenden, aber ich kenne Lambda-Ausdrücke nicht genug, um es richtig zu machen. Ich versuche etwas zu kombinieren

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

Ich weiß, das macht keinen syntaktischen Sinn, aber ich bin mir nicht sicher, ob ich das überhaupt tun kann. Ich möchte nur die Cast<string>() , aber ich muss den Text von jedem Knoten extrahieren.

Irgendwelche Ideen, wie man dies in einen AddRange() Ausdruck AddRange() ?

Akzeptierte Antwort

Sie suchen nach IEnumerable. Select() :

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


Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum
Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum