2015-06-21 99 views
0

我遇到了一個問題,試圖在Visual Studio中使用xml文件,希望有人能爲我指出我的錯誤。我想要做的是讀入所有子元素,然後從父元素中找到最長的子元素。LINQ查詢和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 

回答

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