To add to the answers given above. You should never limit your code to just consider the latin alphabet; there are so many cases where you need to consider international users. Fortunately, this is very simple to cater for. In the following snippet, I'm using a French character (E with a Grave), and I detect whether or not it's a letter. If it is, I then go on to get the previous character. Again, I check to see if it's a letter.
char character = 'È';
System.Diagnostics.Debug.WriteLine($"Is a character {char.IsLetter(character)}");
if (char.IsLetter(character))
{
char previousCharacter = (char)(character - 1);
if (char.IsLetter(previousCharacter))
{
System.Diagnostics.Debug.WriteLine(previousCharacter);
}
}
It really is that simple.
For sheets and giggles, I changed my input character to 字, and this returns 孖 as the previous character.