c # Alpha Telefonnummer Übersetzer

Ich habe eine Hausaufgabe, bei der das Programm alle Telefonnummern im Format 555-GET-FOOD akzeptiert. Die Aufgabe besteht darin, die alphabetischen Buchstaben den Zahlen zuzuordnen und die Zahl in ihre numerische Entsprechung zu übersetzen.
Zum Beispiel: A, B, C = 2; D, E, F = 3; etc..

Wir haben uns zu diesem Zeitpunkt noch nicht mit Klassen oder der Erstellung von Karten befasst, sodass dies keine praktikablen Lösungen wären. Dieses Kapitel behandelt die Aufzählung, daher arbeite ich an der Lösung mit einem Aufzählungstyp. Ich habe eine Methode eingerichtet, um die Daten zu überprüfen (stellen Sie sicher, dass sich die richtige Anzahl von Zeichen und die Bindestriche an der richtigen Stelle befinden), und dies funktioniert ordnungsgemäß. Ich habe eine andere Methode eingerichtet, um die Bindestriche zu entfernen, und verwende auch die ToUpper () -Methode. Dies funktioniert auch ordnungsgemäß. Daher habe ich die foreach-Schleife eingerichtet, indem ich die Nummer verwende, nachdem diese beiden Methoden bereits abgeschlossen sind.

Ich habe auch eine Methode eingerichtet, die nach der Konvertierung ausgeführt wird, um die Bindestriche wieder einzufügen, und das funktioniert auch.

Ich habe verschiedene Möglichkeiten ausprobiert, um zu erreichen, dass es funktioniert, und habe sie darauf hingewiesen, dass sie möglicherweise das sind, was ich verwenden muss, für meinen Versuch mit der switch-Anweisung, die ich vorerst nur mit dem Buchstaben A eingerichtet habe, und geplant die restlichen Buchstaben zu beenden, wenn ich in der Lage bin, dies zum Laufen zu bringen. Ich denke, mein Problem ist, dass die foreach-Schleife einen char-Typ und der Schalter einen int-Typ verwendet. Scheint dasselbe Problem zu sein, wenn ich den Code in der foreach-Schleife ausprobiere, aber ich bin mir nicht sicher, wie ich es beheben sol

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;

Ich bin offen für Vorschläge und danke für jede Hilfe. Wo ich Hilfe benötige, befindet sich in der foreach-Schleife jeder Wert. Wenn es sich um einen Buchstaben handelt, möchte ich den Wert aus den Aufzählungswerten abrufen und das Zeichen durch den Zahlenwert ersetzen.

Antworten auf die Frage(10)

Ihre Antwort auf die Frage