I don't think C++ would give you a good grounding for a language like C#; too much emphasis on manual memory allocation, and insufficient exposure to higher-level abstractions, like lambdas and monads (as IEnumerable<T> effectively is).
It's not an ideal basis but there are worse languages to learn before coming to C#; it might even be easier for C++ programmers to move to C# and begin working comfortably than Java programmers.