I think the biggest mistake was the initial release of C# without generics. The traces of the old, non-generic, interfaces, delegates, collections etc. are visible to this day in both user written code and the .NET Framework library.

Of course, this isn't stricly about C# as the runtime itself didn't support generics at that time...