There is a nice series of articles on data structures using C# 2.0 (uncluding all the stuff around generics) on MSDN. The articles really go into great detail about how arrays etc. physically work in memory. Very nice if you've got some time between 2:00 and 3:00 in the morning.
[PS: I was a bit undecided as to wether to post this or not, thinking that this sort of stuff was more or less common knowledge but then I rememebered an incident the other day when a colleage (not junior by the way) asked me what he should do if he wants an array of stuff, but he doesn't know beforehand how many there will be. “Use an ArrayList” was my reply. “What's that?” was his.......... ]
An Extensive Examination of Data Structures Using C# 2.0, Part 1
An Extensive Examination of Data Structures Using C# 2.0, Part 2
An Extensive Examination of Data Structures Using C# 2.0, Part 3
An Extensive Examination of Data Structures Using C# 2.0, Part 4
An Extensive Examination of Data Structures Using C# 2.0, Part 5
An Extensive Examination of Data Structures Using C# 2.0, Part 6