StealthRT
StealthRT

Reputation: 10552

VB.net Dictionary loop

Hey all i am in need of some help looping thru my Dictionary list. I can not seem to find the correct syntax in order to do so.

Here is my code:

Dim all = New Dictionary(Of String, Object)()
Dim info = New Dictionary(Of String, Object)()
Dim theShows As String = String.Empty

info!Logo = channel.SelectSingleNode(".//img").Attributes("src").Value
info!Channel = .SelectSingleNode("channel.//span[@class='channel']").ChildNodes(1).ChildNodes(0).InnerText
info!Station = .SelectSingleNode("channel.//span[@class='channel']").ChildNodes(1).ChildNodes(2).InnerText
info!Shows = From tag In channel.SelectNodes(".//a[@class='thickbox']")
            Select New With {channel.Show = tag.Attributes("title").Value, channel.Link = tag.Attributes("href").Value}

all.Add(info!Station, info.Item("Shows"))

theShows = all.Item("Shows")  '<--Doesnt work...

I just want to extract whatever is in "Shows" from the all dictionary.

enter image description here

Upvotes: 1

Views: 4144

Answers (2)

Winstong
Winstong

Reputation: 11

You can loop like this

For Each pair As KeyValuePair(Of String, String) In dict

    MsgBox(pair.Key & "  -  " & pair.Value)
Next

source : VB.Net Dictionary

Winston

Upvotes: 1

Kratz
Kratz

Reputation: 4340

Your code,

all.Add(info!Station, info.Item("Shows"))

theShows = all.Item("Shows")

The value of info!Station is being used as the KEY value in the all dictionary. Then you attempt to access the value using the constant string "Shows". I'm not sure what your intention was but

theShows = all.Item(info!Station)

should return the value of Shows that was stored using the Key info!Station.

If you want the list of shows as a string, you can do this,

Dim Shows as String = ""
For Each item in theShows
    Shows &= item.Show & vbNewLine
Next

Upvotes: 1

Related Questions