The problem is that when the user types a key, you try to parse it to an int:
int character = int.Parse(Console.ReadLine());
Which means convert from a string representation of a number "1234" to an integer version that can be handle mathematically.
So if the user types an "8" for example, int.Parse will return the value 8 - which is less than 48, so it will fail all your tests.
Instead, use the character directly:
string userInput = Console.ReadLine();
foreach (char c in userInput)
{
string type = "unknown";
if (c >= '0' && c <= '9')
{
type = "integer";
}
else if ...
Or better, use the built in functions:
string userInput = Console.ReadLine();
foreach (char c in userInput)
{
string type = "symbol";
if (char.IsDigit(c))
{
type = "integer";
}
else if (char.IsLetter(c))
{
if (char.IsLower(c))
{
type = "lowercase character";
}
else
{
type = "uppercase character";
}
}
...
}