我有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()
表达式的任何想法?
答案 0 :(得分:4)
您正在寻找IEnumerable.Select()
:
nodesList.AddRange(nodes.Select(node => node.InnerText))