Использование Enumerable.TakeWhile
:
var leadingLetters =
new String(fileName.Name.TakeWhile(Char.IsLetter).ToArray());
TakeWhile
делает именно то, на что это похоже: оно берется из последовательности, пока условие истинно. В этом случае вы хотите взять из последовательности символов, в то время как символы являются буквами, и остановиться, как только вы достигнете не буквы.
Кроме того, я рекомендую переименовать вашу переменную с onlyLetters
на leadingLetters
. onlyLetters
довольно вводит в заблуждение, учитывая ваше простое английское описание.