The other unfortunate is that as C# accretes features, the old still hangs around. Eventually you end up with too many valid ways of doing things, and cruft that either can't be worked around or was never updated.
It's been over a decade since generics were introduced, but I still encounter code using ArrayList today...