LINQ查询和XML元素的问题

时间:2015-06-21 14:28:23

标签: visual-studio visual-studio-2013

我遇到了一个试图在visual studio中使用xml文件的问题,希望有人可以为我指出我的错误。我想要做的是读取所有子元素,然后从父母那里找到最长的孩子。

我已经尝试了很多这种代码的变体,对于循环,LINQ查询等,似乎无法使其按预期工作。我得到两个错误之一,空引用异常或:

System.Linq.Enumerable+WhereSelectEnumerableIterator`2[VB$AnonymousType_1`3[System.Xml.Linq.XElement,System.String,System.Int32],System.Int32]

这是我的代码,我希望有人可以解释为什么这对xml文件不起作用,因为它几乎与我在这一点上所做的其他事情一起工作。谢谢!

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles btnCalc.Click
    Dim States As XElement = XElement.Load("USStates.xml")
    Dim query = From na In States.Descendants("state")
                Let names = na.<name>.Value
                Let length = names.Length
                Order By length Descending
                Select length

    TextBox1.Text = query.ToString

End Sub

1 个答案:

答案 0 :(得分:0)

我发现了我的问题,我使用以下代码解决了我的问题:

 Dim query = From st In States.Descendants("state")
                Let stateName = st.<name>.Value
                Let length = stateName.Length
                Order By length Descending
                Select stateName

    For Each item In query
        If item.Length > 10 Then
            output.Items.Add(item)
        End If
    Next