C#:组合AddRange()和Lambda Expression

时间:2014-12-19 02:38:23

标签: c# lambda html-agility-pack

我有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循环中添加项目。我试图使用lambda表达式来做这件事,但我对lambda表达式不够熟悉,无法正确完成。我试图结合类似

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

我知道这没有语法意义,但我不确定是否能做到这一点。我想只收集Cast<string>()集合,但我需要从每个节点中提取文本。

有关如何将其放入AddRange()表达式的任何想法?

1 个答案:

答案 0 :(得分:4)

您正在寻找IEnumerable.Select()

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