C #: Объединение AddRange () и выражения Lambda

c# html-agility-pack lambda

Вопрос

У меня есть Collection узлов, в частности коллекция узлов HTMLAgilityPack.HTMLNodeCollection . Я знаю, что я могу извлекать и хранить информацию из узлов, делая:

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

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

Однако то, что я хотел бы сделать, это применить AddRange() , а не добавлять элементы в цикл foreach . Я пытаюсь использовать выражение лямбда для этого, но я недостаточно хорошо знаком с лямбда-выражениями, чтобы сделать это правильно. Я пытаюсь совместить что-то вроде

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

Я знаю, что не имеет никакого синтаксического смысла, но я не уверен, может ли это сделать. Я хотел бы просто выделить Cast<string>() коллекцию, но мне нужно извлечь текст из каждого узла.

Любые идеи о том, как помещать это в выражение AddRange() ?

Принятый ответ

Вы ищете IEnumerable. Select() :

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


Related

Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow