简单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);工作很好

谢谢。

简单Linq语句

尝试:

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;