使用 linq 选择后是否可以保留属性类型?
Is possible keep the properties type after using linq selection?
此问题与 部分相关。特别是我需要保留类型 HtmlNodeCollection
的 属性,本质上我只需要获得具有文本的 select
的选项,实际上是 select 结构,看起来像这样:
<select class="foo">
<option></option>
<option>item1</option>
<option>item2</option>
</select>
所以我这样做了:
var grps = doc.DocumentNode.SelectNodes("//select[@id='group_id_selector']//option")
.Where(c => c.InnerText != string.Empty);
此代码有效,但我无法访问每个对象的 属性,因为现在 grps
集合是一个 Enumerable
,而我需要一个 HtmlNodeCollection
, 我尝试将 as HtmlNodeCollection
添加到末尾,但代码 return null
.
有什么想法吗?
我认为 ToList()
方法是您在这里想念的,试试这个:
var grps = doc.DocumentNode.SelectNodes("//select[@id='group_id_selector']//option")
.Where(c => c.InnerText != string.Empty).ToList();
Where
、Select
方法(以及更多)return Enumerable
个对象。调用ToList()
方法会return对应类型:)
此问题与 HtmlNodeCollection
的 属性,本质上我只需要获得具有文本的 select
的选项,实际上是 select 结构,看起来像这样:
<select class="foo">
<option></option>
<option>item1</option>
<option>item2</option>
</select>
所以我这样做了:
var grps = doc.DocumentNode.SelectNodes("//select[@id='group_id_selector']//option")
.Where(c => c.InnerText != string.Empty);
此代码有效,但我无法访问每个对象的 属性,因为现在 grps
集合是一个 Enumerable
,而我需要一个 HtmlNodeCollection
, 我尝试将 as HtmlNodeCollection
添加到末尾,但代码 return null
.
有什么想法吗?
我认为 ToList()
方法是您在这里想念的,试试这个:
var grps = doc.DocumentNode.SelectNodes("//select[@id='group_id_selector']//option")
.Where(c => c.InnerText != string.Empty).ToList();
Where
、Select
方法(以及更多)return Enumerable
个对象。调用ToList()
方法会return对应类型:)