What are some good exercises that an intermediate/advanced VB.NET web programmer should to do gain syntax chops on C#?
I imagine some good examples would be:
Wikipedia has a great article on this:
http://en.wikipedia.org/wiki/Comparison_of_C_Sharp_and_Visual_Basic_.NET
Because programming in .NET is more about the Framework than any specific language or syntax on top, the MSDN documentation is invaluable for crossing over C# and VB.NET barriers because it contains one-to-one samples of using C# and VB.NET syntax for .NET common elements. For example if you look up delegates you will find the same sample in both syntaxes.
For syntax-specific elements other people have posted some good sources.
A good excercise would be trying to understand other people's C# code snippets, and reproducing them yourself from scratch. This means that you'll encounter lots of stuff you need to look up and learn in order to understand to see what those snippets are doing.
The good news is that, both in C# and VB.Net, the .NET framework does most of the heavy lifting, so you'll probably understand and recognize those parts. I use both C# and VB.Net in my job and I've come to realize that, because of the shared framework, the languages aren't that different from each other in practice.
I still like C# better, since I feel it results in cleaner code, somehow.
I think best exercise would to build something for yourself.
This way you can to define your scope, to "negotiate" new features and to write new code just for fun.
You could also to solve again problems you already know; for instance, I recommend trying to solve some problems from Project Euler in C#.
Look up the very basics (how to define a function, how to define a variable), then start coding C# in a real project. Look stuff up once you get stuck (or try the automatic converters mentioned in another answer). The differences are not large, so it will not delay your project significantly. Since there is (almost) a 1:1 correspondence between VB.NET and C# code, it's usually okay to "think VB.NET" and then write your code in C#.
After you are familiar with the syntax, google for the differences between VB.NET and C# (i.e. what can you do in C# that won't work in VB.NET -- e.g. anonymous methods) and rework those things where C# allows for a more elegant solution.
this should take care of #3
Comparision