简单Linq语句
本文关键字:语句 Linq 简单 | 更新日期: 2023-09-27 18:15:38
我有一个字符串tr (html表行)的列表,每个tr有3个td。
我正在使用HtmlAgilityPack从网页中过滤出数据。
var data= from tr in content.ChildNodes.Where(c =>c.Name.Equals("tr"))
select tr;
<tr><td></td><td>aaa</td><td></td></tr>
<tr><td></td><td>bbb</td><td></td></tr>
<tr><td></td><td>aaa</td><td></td></tr>
<tr><td></td><td>aaa</td><td></td></tr>
…
我想把所有的值按td[2]分组,即:aaa, bbb
谢谢。
:更新数据。GroupBy(tr => tr. childnodes .)Where(e => e. name == "td").Skip(1)当代().InnerText);工作很好
谢谢。
尝试:
data.GroupBy(tr => tr.ChildNodes
.Where(e => e.Name == "td")
.Skip(1).First().Value));
当然,这假设在每个tr
中至少有2个td
。如果没有,那么您还必须在Skip(1).First()
调用中做一些null检查。
这会将TD值保存到一个集合中。
var entries = from td in data.DocumentNode.SelectNodes("//td").Where(node => node.InnerHtml != string.Empty) select td.InnerHtml;