Вы можете сгладить цикл, чтобы избежать ненужного разделения и выделения строк, но в конце дня вам все равно придется проверить, является ли каждый символ гласным:
private static readonly char[] _vowels = "AEIOUaeiou".ToCharArray();
private bool CheckForVowels(string sentence)
{
return sentence.IndexOfAny(_vowels) != -1;
}
(я не знаю внутреннюю реализацию IndexOfAny
. Я думаю, что он должен выполнять именно такой цикл, но есть вероятность, что он будет делать это с использованием неуправляемого и / или небезопасного кода, поэтому по крайней мере так же быстро, как и все, что ты пишешь сам.)