Hi,
Firstly, Just use the MSDN help library's and search for information on Lists, Dictionary's, Hash Tables, Stacks, Queues, ArrayLists etc. This will give you all the information you need.
With regards to your comparison question. consider the SECOND declaration first, being:-
"Dim dictionary As New Dictionary(Of String, String)" - In the real world you can consider this to resemble a real life Dictionary i.e. every word in a Dictionary is an entry in the dictionary variable with the word being the key and the explanation being the value.
If you then consider your first declaration being, " Dim values As New List(Of Dictionary(Of String, String))", you can think of this as getting multiple Dictionary's explained above and piling them one of top of each other. I would try and steer away from this sort of thing until you have a lot more experience with the different collections available to you in the .NET Framework.
Hope that helps.
Cheers,
Ian