Take the following snippet:
List distances = new List();
Was the redundancy intended by the language designers? If so, wh
What's redudant about this?
List listOfInts = new List():
Translated to English: (EDIT, cleaned up a little for clarification)
Not really verbose when you think about what it does.
Of course there is an alternative:
var listOfInts = new List();
Here we are using C#'s type inference, because you are assigning to it immediately, C# can figure out what type you want to create by the object just created in the heap.
To fully understand how the CLR handles types, I recommend reading CLR Via C#.