C # Alpha Переводчик телефонных номеров

У меня есть домашнее задание, где программа принимает любой номер телефона в формате, аналогичном 555-GET-FOOD. Задача состоит в том, чтобы сопоставить буквы алфавита с числами и перевести число в его числовой эквивалент.
Например: A, B, C = 2; D, E, F = 3; так далее...

На данный момент мы не рассматривали классы и не создавали карты, поэтому они не были бы жизнеспособными решениями. В этой главе описывается перечисление, поэтому я работаю над решением с использованием типа Enumerated. У меня есть метод, настроенный для проверки данных (убедитесь, что правильное количество символов и дефисы находятся в правильном месте), и это работает правильно. У меня есть другой метод, настроенный для удаления дефисов, который также использует метод ToUpper (), и это также работает правильно, поэтому цикл foreach, который я настроил, использует число после того, как эти два метода уже завершены.

Я также настроил метод для запуска после преобразования, чтобы добавить дефисы обратно, и это тоже работает.

Я попробовал несколько способов заставить работать, и оставил их в комментариях о том, что они могут быть тем, что мне нужно использовать, для моей попытки с оператором switch я настроил только букву A на данный момент и планирую закончите оставшиеся буквы, если я смогу заставить это работать. Я думаю, что одной из моих проблем является то, что цикл foreach использует тип char, а переключатель использует int. Кажется, та же проблема при попытке кода внутри цикла foreach, но я не уверен, как это исправить, поэтому любые предложения приветствуются.

public enum AlphaNumber
{ 
    A=2, B=2, C=2, D=3, E=3, F=3, G=4, H=4, I=4, J=5, K=5, L=5, 
    M=6, N=6, O=6, P=7, Q=7, R=7, S=8, T=8, U=8, V=9, W=9, X=9, Y=9, Z=9
}
 private void UpdatePhone(AlphaNumber phone)
    {
        switch (phone)
        {
            case AlphaNumber.A:
           //return AlphaNumber.(int[])Enum.GetValues(typeof(AlphaNumber));
           //return (Enum.GetValues(typeof(AlphaNumber)));
           //   (int)ValueType;
                Enum.GetValues(typeof(AlphaNumber));
                break;                   
        }
private void translateButton_Click(object sender, EventArgs e)
    {
        numberLabel.Text = "";//Clear the numberLabel
        //Get a trimmed copy of the user's input.  
        string input = numberTextBox.Text.Trim();

        if (IsValidFormat(input))
        {
            Unformat(ref input);

            foreach (char ch in input)
            {
                if (char.IsLetter(ch))//                    {
                    ch = (char)Enums.AlphaNumber.Active;
                    //ch = (char)Enum.GetValues(typeof(AlphaNumber));
                    //ch = Enum.TryParse(AlphaNumber);
                   // ch = AlphaNumber.(int[])Enum.GetValues(typeof(AlphaNumber));
                    //UpdatePhone(ch);
                   MessageBox.Show("Character is char");                    }
            }

            TelephoneFormat(ref input);    
            numberLabel.Text = input;

Я открыт для любых предложений и ценю любую предоставленную помощь. Там, где мне нужна помощь, находится внутри цикла foreach, я смотрю на каждое значение, и если это буква, я хочу получить значение из значений перечисления и заменить символ на числовое значение.

Ответы на вопрос(5)

Ваш ответ на вопрос