Chamyys, а вы протестируйте этот способ на ряде тестовых строк, и увидите, что не такой уж он и отличный.
На пример, он пропустит пустую строку и нормально отреагирует на пРиМЕрНо такую.
Regex.IsMatch("^[А-ЯЁ]{1}[а-яё]+$", Surname);
В таком формате проверяем и корректность набора символов, и правильность введённой фамилии - с заглавной буквы.