Incidentally, I'm fairly sure when I was learning years ago I was told that a string was just a char array so I was surprised that I had to convert a string to an array in the first place. I may have remembered this wrong of course (was reading C & C++)
C doesn't have strings, it has arrays of characters. An array of characters terminated with a zero character is used to represent a "string" and there are a bunch of standard library functions that work with character arrays conforming the that definition that make up C's "string library."
C++ inherits the same convention and also adds a std::string standard library type.
Strings in other languages are usually built-in, first-class types, as they are in C#. They may conceptually be arrays-of-characters but are not trivially interchangeable with them.
Ah well I suppose I would add a conditional to make sure that times >=1.
There's quite a lot you can do to your code to harden it against errors and bad input, and a few places where you are doing slightly under-performing operations (C# strings are immutable, it's generally better to get into the habit of using string.Format or the StringBuilder class to format them, as stuff like "string" + thing + "string" potentially creates a lot of garbage, for example).