Is there a means to get the index of the first non-whitespace character in a string (or more generally, the index of the first character matching a condition) in C# without
Something is going to be looping somewhere. For full control over what is and isn't whitespace you could use linq to objects to do your loop:
int index = Array.FindIndex( s.ToCharArray(), x => !(new [] { '\t', '\r', '\n', ' '}.Any(c => c == x)));