Splitting a string into words or double-quoted substrings
Seems like a job for a regular expression:

string baseString = "This is a \"Very Long Test\"";
var re = new Regex("(?&lt;=\")[^\"]*(?=\")|[^\" ]+");
var strings = re.Matches(baseString).Cast&lt;Match&gt;().Select(m =&gt; m.Value).ToArray();


What the regular expression (?&lt;=")[^"]*(?=")|[^" ]+ does is that it either finds a sequence of zero or more characters that are not " ([^"]*) preceded by a " ((?&lt;=")) and followed by a " ((?=")) or a sequence of one or more character that are not " or a space ([^" ]+).

For the sample input, it gives the same output as your version. The code itself is much simpler, but the regular expression might be hard to understand, especially if you're not used to them.