从Skip LINQ方法转换结果的正确方法

时间:2013-12-19 14:59:41

标签: .net vb.net linq html-agility-pack

我需要正确地将Skip方法返回给我的集合转换为正确的类型:

Dim htmlnodes_Albums As HtmlAgilityPack.HtmlNodeCollection = Nothing

htmlnodes_Albums =
    htmldoc_RawSource.DocumentNode.
    SelectNodes("//h1[@class='pageheader']").
    Skip(1).
    Cast(Of HtmlAgilityPack.HtmlNode)()

问题是上面的代码抛出了一个强制转换异常,我也试过了CType

我可以取消定义htmlnodes_Albums的类型或者编写一个很长的LINQ方法来转换类型,但我不会。我想知道一种正确(和简短)的转换方式。

1 个答案:

答案 0 :(得分:4)

LINQ方法通常返回IEnumerable对象,就像Cast方法一样。试试这个:

Dim htmlnodes_Albums As IEnumerable(Of HtmlAgilityPack.HtmlNode) = Nothing

htmlnodes_Albums =
    htmldoc_RawSource.DocumentNode.
    SelectNodes("//h1[@class='pageheader']").
    Skip(1).
    Cast(Of HtmlAgilityPack.HtmlNode)()