2016-11-24 6 views
2

Ich bin neu in C# und habe das folgende Problem.if/if else/else

Ein Programm zur Berechnung der an einem Fahrzeug zu zahlenden Steuer. Der Benutzer gibt die Art des Autos (es gibt 3 Arten), Lizenzlänge (6 oder 12 Monate) und Emissionsband (5 Arten) und das Programm druckt die Kosten der Lizenz aus:

mein Code funktioniert tadellos als Solange ich 6 Monate Lizenzlänge wähle.

bitte helfen Sie mir zu verstehen, welchen Fehler ich gemacht habe, danke.

static void Main(string[] args) 
    { 
     bool check; 
     int car, length; 
     double rate = 0; 
     string band = ""; 


     Console.WriteLine("{0,-12} {1,-12} {2,-12}", "Diesel Car", "Petrol Car", "Alt. Fuel Car"); 
     Console.WriteLine("{0,-12} {1,-12} {2,-12}", "TC 49", "TC 48", "TC 59"); 

     Console.WriteLine("Enter Car Type (TC#): "); 
     check = int.TryParse(Console.ReadLine(), out car); 
     if (check) 
     { 
      if (car == 49) 
      { 

        Console.WriteLine("Enter Licience length in months(6 or 12)"); 
        length = int.Parse(Console.ReadLine()); 
        if (length == 6) 
        { 
         Console.WriteLine("Enter Emission Band (AA, A, B, C, D): "); 
         band = Console.ReadLine(); 
         if (band == "AA") 
         { 
          rate = 44; 
         } 
         else if (band == "A") 
         { 
          rate = 60.5; 
         } 
         else if (band == "B") 
         { 
          rate = 71.5; 
         } 
         else if (band == "C") 
         { 
          rate = 82.5; 
         } 
         else if (band == "D") 
         { 
          rate = 88; 
         } 
         else 
          Console.WriteLine("ERROR"); //error for band != AA,A,B,C or D 

        } 
        else if (length == 12) 
        { 
         if (band == "AA") 
         { 
          rate = 80; 
         } 
         else if (band == "A") 
         { 
          rate = 110; 
         } 
         else if (band == "B") 
         { 
          rate = 130; 
         } 
         else if (band == "C") 
         { 
          rate = 150; 
         } 
         else if (band == "D") 
         { 
          rate = 160; 
         } 
         else 
          Console.WriteLine("ERROR"); //error for band != AA,A,B,C or D 
        } 
        else 
         Console.WriteLine("ERROR"); // error for length != 6 or 12 

      } 
      else if (car == 48) 
      { 
       Console.WriteLine("Enter Licience length in months(6 or 12)"); 
       length = int.Parse(Console.ReadLine()); 
       if (length == 6) 
       { 
        Console.WriteLine("Enter Emission Band (AA, A, B, C, D): "); 
        band = Console.ReadLine(); 
        if (band == "AA") 
        { 
         rate = 38.5; 
        } 
        else if (band == "A") 
        { 
         rate = 55; 
        } 
        else if (band == "B") 
        { 
         rate = 66; 
        } 
        else if (band == "C") 
        { 
         rate = 77; 
        } 
        else if (band == "D") 
        { 
         rate = 85.25; 
        } 
        else 
         Console.WriteLine("ERROR"); //error for band != AA,A,B,C or D 

       } 
       else if (length == 12) 
       { 
        if (band == "AA") 
        { 
         rate = 70; 
        } 
        else if (band == "A") 
        { 
         rate = 100; 
        } 
        else if (band == "B") 
        { 
         rate = 120; 
        } 
        else if (band == "C") 
        { 
         rate = 140; 
        } 
        else if (band == "D") 
        { 
         rate = 155; 
        } 
        else 
         Console.WriteLine("ERROR"); //error for band != AA,A,B,C or D 
       } 
       else 
        Console.WriteLine("ERROR"); // error for length != 6 or 12 
      } 
      else if (car == 59) 
      { 
       Console.WriteLine("Enter Licience length in months(6 or 12)"); 
       length = int.Parse(Console.ReadLine()); 
       if (length == 6) 
       { 
        Console.WriteLine("Enter Emission Band (AA, A, B, C, D): "); 
        band = Console.ReadLine(); 
        if (band == "AA") 
        { 
         rate = 33; 
        } 
        else if (band == "A") 
        { 
         rate = 49.5; 
        } 
        else if (band == "B") 
        { 
         rate = 60.5; 
        } 
        else if (band == "C") 
        { 
         rate = 71.5; 
        } 
        else if (band == "D") 
        { 
         rate = 82.5; 
        } 
        else 
         Console.WriteLine("ERROR"); //error for band != AA,A,B,C or D 

       } 
       else if (length == 12) 
       { 
        if (band == "AA") 
        { 
         rate = 60; 
        } 
        else if (band == "A") 
        { 
         rate = 90; 
        } 
        else if (band == "B") 
        { 
         rate = 110; 
        } 
        else if (band == "C") 
        { 
         rate = 130; 
        } 
        else if (band == "D") 
        { 
         rate = 150; 
        } 
        else 
         Console.WriteLine("ERROR"); //error for band != AA,A,B,C or D 
       } 
       else 
        Console.WriteLine("ERROR"); // error for length != 6 or 12 
      } 
      else 
       Console.WriteLine("ERROR"); // error for car number != 48,49 or 59 
     } 
     else 
      Console.WriteLine("ERROR"); //error for car num != int 
     Console.WriteLine(rate); 
    } 
+2

Sie könnten auch 'switch' Anweisungen verwenden. –

+1

Ich empfehle einen grundlegenden Programmierkurs zu machen. Weil Ihr Code ein mangelndes Verständnis dafür zeigt, wie man ... Programme schreibt. Nur ein Beispiel: Um die Anzahl der if/else-Zweige zu reduzieren, sollten Sie wirklich ein 'Dictionary' verwenden. – MrPaulch

Antwort

0

Das Problem in Ihrem bereitgestellten Code:

Sie die Benutzereingabe für band nicht bekommen, wenn der Benutzer 12

Versuchen wählt:

else if (length == 12) 
{ 
    Console.WriteLine("Enter Emission Band (AA, A, B, C, D): "); 
    band = Console.ReadLine(); 
    //etc ... 

Verbesserung:

Wichtig wenn Schreiben von Code (speziell in den Code, den Sie zur Verfügung gestellt haben) ist um die Lesbarkeit zu kümmern und zu sehen, ob wir nicht viel doppelten Code haben.

Wie bereits zahlreiche Kommentare implizieren, ist die Struktur, wie Sie den Code geschrieben haben, alles andere als optimal. Tuples sind bereits erwähnt und sind sicherlich ein guter Weg.

Mein Beispiel zeigt, wie Sie dies mit einer Car class stattdessen tun würden und ist eine weitere mögliche Lösung der Verbesserung.

class Program 
{ 
    public static List<Car> CarList; 

    static void Main(string[] args) 
    { 

     PopulateCars(); 

     int car, length; 
     decimal rate = 0m; 
     Car.CarBand band; 

     Console.WriteLine("{0,-12} {1,-12} {2,-12}", "Diesel Car", "Petrol Car", "Alt. Fuel Car"); 
     Console.WriteLine("{0,-12} {1,-12} {2,-12}", "TC 49", "TC 48", "TC 59"); 

     Console.WriteLine("Enter Car Type (TC#): "); 
     var keyboardInput = Console.ReadLine(); 

     while (!int.TryParse(keyboardInput, out car)) 
     { 
      Console.WriteLine("Invalid car input, try again."); 
      keyboardInput = Console.ReadLine(); 
     } 

     Console.WriteLine("Enter Licience length in months(6 or 12)"); 
     keyboardInput = Console.ReadLine(); 

     while (!int.TryParse(keyboardInput, out length)) 
     { 
      Console.WriteLine("Invalid months input, try again."); 
      keyboardInput = Console.ReadLine(); 
     } 

     Console.WriteLine("Enter Emission Band (AA, A, B, C, D): "); 
     keyboardInput = Console.ReadLine(); 

     while (!Enum.TryParse(keyboardInput, out band)) 
     { 
      Console.WriteLine("Invalid band input, try again."); 
      keyboardInput = Console.ReadLine(); 
     } 

     var matchedCar = CarList.FirstOrDefault(c => c.CarNumber == car && c.Lenght == length && c.Band == band); 

     if (matchedCar != null) 
      Console.WriteLine("The rate for this car is {0}", matchedCar.Rate); 
     else 
      Console.WriteLine("Car not found"); 

     Console.ReadLine(); 

    } 

    public class Car 
    { 
     public int CarNumber { get; set; } 
     public int Lenght { get; set; } 
     public CarBand Band { get; set; } 
     public decimal Rate { get; set; } 

     public enum CarBand 
     { 
      AA, 
      A, 
      B, 
      C, 
      D 
     } 
    } 

    public static void PopulateCars() 
    { 
     CarList = new List<Car>(); 

     // Cars 48 
     CarList.Add(new Car { CarNumber = 48, Lenght = 6, Band = Car.CarBand.AA, Rate = 38.5m }); 
     CarList.Add(new Car { CarNumber = 48, Lenght = 6, Band = Car.CarBand.A, Rate = 55m }); 
     CarList.Add(new Car { CarNumber = 48, Lenght = 6, Band = Car.CarBand.B, Rate = 66m }); 
     CarList.Add(new Car { CarNumber = 48, Lenght = 6, Band = Car.CarBand.C, Rate = 77m }); 
     CarList.Add(new Car { CarNumber = 48, Lenght = 6, Band = Car.CarBand.D, Rate = 85.25m }); 

     CarList.Add(new Car { CarNumber = 48, Lenght = 12, Band = Car.CarBand.AA, Rate = 70m }); 
     CarList.Add(new Car { CarNumber = 48, Lenght = 12, Band = Car.CarBand.A, Rate = 100m }); 
     CarList.Add(new Car { CarNumber = 48, Lenght = 12, Band = Car.CarBand.B, Rate = 120m }); 
     CarList.Add(new Car { CarNumber = 48, Lenght = 12, Band = Car.CarBand.C, Rate = 140m }); 
     CarList.Add(new Car { CarNumber = 48, Lenght = 12, Band = Car.CarBand.D, Rate = 155m }); 

     //Cars 49 
     CarList.Add(new Car { CarNumber = 49, Lenght = 6, Band = Car.CarBand.AA, Rate = 44m }); 
     CarList.Add(new Car { CarNumber = 49, Lenght = 6, Band = Car.CarBand.A, Rate = 60.5m }); 
     CarList.Add(new Car { CarNumber = 49, Lenght = 6, Band = Car.CarBand.B, Rate = 71.5m }); 
     CarList.Add(new Car { CarNumber = 49, Lenght = 6, Band = Car.CarBand.C, Rate = 82.5m }); 
     CarList.Add(new Car { CarNumber = 49, Lenght = 6, Band = Car.CarBand.D, Rate = 88m }); 

     CarList.Add(new Car { CarNumber = 49, Lenght = 12, Band = Car.CarBand.AA, Rate = 80m }); 
     CarList.Add(new Car { CarNumber = 49, Lenght = 12, Band = Car.CarBand.A, Rate = 110m }); 
     CarList.Add(new Car { CarNumber = 49, Lenght = 12, Band = Car.CarBand.B, Rate = 130m}); 
     CarList.Add(new Car { CarNumber = 49, Lenght = 12, Band = Car.CarBand.C, Rate = 150m }); 
     CarList.Add(new Car { CarNumber = 49, Lenght = 12, Band = Car.CarBand.D, Rate = 160m });   

     // Cars 59 
     CarList.Add(new Car { CarNumber = 59, Lenght = 6, Band = Car.CarBand.AA, Rate = 33m }); 
     CarList.Add(new Car { CarNumber = 59, Lenght = 6, Band = Car.CarBand.A, Rate = 49.5m }); 
     CarList.Add(new Car { CarNumber = 59, Lenght = 6, Band = Car.CarBand.B, Rate = 60.5m }); 
     CarList.Add(new Car { CarNumber = 59, Lenght = 6, Band = Car.CarBand.C, Rate = 71.5m }); 
     CarList.Add(new Car { CarNumber = 59, Lenght = 6, Band = Car.CarBand.D, Rate = 82.5m }); 

     CarList.Add(new Car { CarNumber = 59, Lenght = 12, Band = Car.CarBand.AA, Rate = 60m }); 
     CarList.Add(new Car { CarNumber = 59, Lenght = 12, Band = Car.CarBand.A, Rate = 90m }); 
     CarList.Add(new Car { CarNumber = 59, Lenght = 12, Band = Car.CarBand.B, Rate = 110m }); 
     CarList.Add(new Car { CarNumber = 59, Lenght = 12, Band = Car.CarBand.C, Rate = 130m }); 
     CarList.Add(new Car { CarNumber = 59, Lenght = 12, Band = Car.CarBand.D, Rate = 150m });   
    } 

} 
+1

Dies könnte das unmittelbare Problem lösen ... aber OP könnte ein grundlegendes Missverständnis über ... Programmierung haben. Es ist mehr als wahrscheinlich, dass es weitere Komplikationen geben wird. – MrPaulch

+0

@MrPaulch Ich habe gerade die unmittelbare Frage in spezifischen beantwortet * "Mein Code funktioniert perfekt, solange ich 6 Monate Lizenzlänge wählen" *. Es gibt keine Notwendigkeit, auf bestimmte Details darüber einzugehen, * wie * jemand programmieren sollte. – Jim

+0

Ich fordere die Tatsache nicht heraus, dass Ihre Antwort die OP-Frage löst. Wenn das OP die * falschen * Werkzeuge verwendet, um ein Problem zu lösen, könnte es ratsam sein, dies zu erwähnen. Als Bonus könnten bessere Tools vorgeschlagen werden – MrPaulch

0

Die Zweige für length == 12 auffordern nicht für einen Wert für band. Sie müssen diese Frage auch für diese Zweige duplizieren oder den Code ändern, um einige der Duplikate zu entfernen.

3

Sie haben mehrere Probleme wie Konzepte in Ihrem Code, aber Ihr Problem, warum nicht funktioniert, weil:

if (length == 6) 
{ 
    Console.WriteLine("Enter Emission Band (AA, A, B, C, D): "); 
    band = Console.ReadLine(); 
    //..other stuff 
} 
else if (length == 12) 
{ 
    //here band has his initial value 
} 

Sie müssen also außerhalb des if(length == 6)

über die Band fragen, wie Sie können Ihren Code verbessern. Verschachtelt zu haben, ist wirklich eine schlechte Übung, daher sollten Sie immer daran denken, Code zu schreiben, ohne eine Pfeilstruktur (verschachtelt, wenn) zu haben.

public static void Main() 
{ 
    int car = 0; 
    int length = 0; 
    Console.WriteLine("Enter Car Type (TC#): "); 

    if(!int.TryParse(Console.ReadLine(), out car)) 
    { 
     Console.WriteLine("Not valid number"); 
     return; 
    } 

    Console.WriteLine("Enter Licience length in months(6 or 12)"); 
    if(!int.TryParse(Console.ReadLine(), out length)) 
    { 
     Console.WriteLine("Not valid number"); 
     return; 
    } 

    Console.WriteLine("Enter Emission Band (AA, A, B, C, D): "); 
    string band = Console.ReadLine(); 

    Dictionary<Tuple<int,int,string>, decimal> carDataDic = GetCarDetails(); 

    decimal ratio = 0; 

    Tuple<int, int, string> checkRatioKey = new Tuple<int, int, string>(car, length, band); 

    if(!carDataDic.TryGetValue(checkRatioKey, out ratio)) 
    { 
     Console.WriteLine("No value found for input data"); 
     return; 
    } 

    Console.WriteLine("Ratio is: " + ratio); 
} 

public static Dictionary<Tuple<int,int,string>, decimal> GetCarDetails() 
{ 
    Dictionary<Tuple<int,int,string>, decimal> values= new Dictionary<Tuple<int,int,string>, decimal>(); 

    //Tuple Items -> Item1=car, Item2=length, Item3= band), value in Dictionary is the rate which you should have 
    values.Add(new Tuple<int, int, string>(49, 6, "AA"), 44); 
    values.Add(new Tuple<int, int, string>(49, 6, "A"), 60.5); 
    //define all of your cases. 

    return values; 
} 

Tuple hat Rolle einer Klasse, in der Sie Ihre Daten für die fahrzeugspezifische speichern. Es ist nett zu verwenden, weil Sie es für Schlüssel in Dictionary verwenden können.

0

Sie haben keine Eingabe von Emissionsband in 12 Monate Lizenzlänge Zustand genommen.`boolcheck; int Auto, Länge; doppelte Rate = 0; string band = "";

 Console.WriteLine("{0,-12} {1,-12} {2,-12}", "Diesel Car", "Petrol Car", "Alt. Fuel Car"); 
     Console.WriteLine("{0,-12} {1,-12} {2,-12}", "TC 49", "TC 48", "TC 59"); 

     Console.WriteLine("Enter Car Type (TC#): "); 
     check = int.TryParse(Console.ReadLine(), out car); 
     if (check) 
     { 
      if (car == 49) 
      { 

       Console.WriteLine("Enter Licience length in months(6 or 12)"); 
       length = int.Parse(Console.ReadLine()); 
       if (length == 6) 
       { 
        Console.WriteLine("Enter Emission Band (AA, A, B, C, D): "); 
        band = Console.ReadLine(); 
        if (band == "AA") 
        { 
         rate = 44; 
        } 
        else if (band == "A") 
        { 
         rate = 60.5; 
        } 
        else if (band == "B") 
        { 
         rate = 71.5; 
        } 
        else if (band == "C") 
        { 
         rate = 82.5; 
        } 
        else if (band == "D") 
        { 
         rate = 88; 
        } 
        else 
         Console.WriteLine("ERROR"); //error for band != AA,A,B,C or D 

       } 
       else if (length == 12) 
       { 
        Console.WriteLine("Enter Emission Band (AA, A, B, C, D): "); 
        band = Console.ReadLine(); 
        if (band == "AA") 
        { 
         rate = 80; 
        } 
        else if (band == "A") 
        { 
         rate = 110; 
        } 
        else if (band == "B") 
        { 
         rate = 130; 
        } 
        else if (band == "C") 
        { 
         rate = 150; 
        } 
        else if (band == "D") 
        { 
         rate = 160; 
        } 
        else 
         Console.WriteLine("ERROR"); //error for band != AA,A,B,C or D 
       } 
       else 
        Console.WriteLine("ERROR"); // error for length != 6 or 12 

      } 
      else if (car == 48) 
      { 
       Console.WriteLine("Enter Licience length in months(6 or 12)"); 
       length = int.Parse(Console.ReadLine()); 
       if (length == 6) 
       { 
        Console.WriteLine("Enter Emission Band (AA, A, B, C, D): "); 
        band = Console.ReadLine(); 
        if (band == "AA") 
        { 
         rate = 38.5; 
        } 
        else if (band == "A") 
        { 
         rate = 55; 
        } 
        else if (band == "B") 
        { 
         rate = 66; 
        } 
        else if (band == "C") 
        { 
         rate = 77; 
        } 
        else if (band == "D") 
        { 
         rate = 85.25; 
        } 
        else 
         Console.WriteLine("ERROR"); //error for band != AA,A,B,C or D 

       } 
       else if (length == 12) 
       { 
        Console.WriteLine("Enter Emission Band (AA, A, B, C, D): "); 
        band = Console.ReadLine(); 
        if (band == "AA") 
        { 
         rate = 70; 
        } 
        else if (band == "A") 
        { 
         rate = 100; 
        } 
        else if (band == "B") 
        { 
         rate = 120; 
        } 
        else if (band == "C") 
        { 
         rate = 140; 
        } 
        else if (band == "D") 
        { 
         rate = 155; 
        } 
        else 
         Console.WriteLine("ERROR"); //error for band != AA,A,B,C or D 
       } 
       else 
        Console.WriteLine("ERROR"); // error for length != 6 or 12 
      } 
      else if (car == 59) 
      { 
       Console.WriteLine("Enter Licience length in months(6 or 12)"); 
       length = int.Parse(Console.ReadLine()); 
       if (length == 6) 
       { 
        Console.WriteLine("Enter Emission Band (AA, A, B, C, D): "); 
        band = Console.ReadLine(); 
        if (band == "AA") 
        { 
         rate = 33; 
        } 
        else if (band == "A") 
        { 
         rate = 49.5; 
        } 
        else if (band == "B") 
        { 
         rate = 60.5; 
        } 
        else if (band == "C") 
        { 
         rate = 71.5; 
        } 
        else if (band == "D") 
        { 
         rate = 82.5; 
        } 
        else 
         Console.WriteLine("ERROR"); //error for band != AA,A,B,C or D 

       } 
       else if (length == 12) 
       { 
        Console.WriteLine("Enter Emission Band (AA, A, B, C, D): "); 
        band = Console.ReadLine(); 
        if (band == "AA") 
        { 
         rate = 60; 
        } 
        else if (band == "A") 
        { 
         rate = 90; 
        } 
        else if (band == "B") 
        { 
         rate = 110; 
        } 
        else if (band == "C") 
        { 
         rate = 130; 
        } 
        else if (band == "D") 
        { 
         rate = 150; 
        } 
        else 
         Console.WriteLine("ERROR"); //error for band != AA,A,B,C or D 
       } 
       else 
        Console.WriteLine("ERROR"); // error for length != 6 or 12 
      } 
      else 
       Console.WriteLine("ERROR"); // error for car number != 48,49 or 59 
     } 
     else 
      Console.WriteLine("ERROR"); //error for car num != int 
     Console.WriteLine(rate); 
     Console.ReadLine();` 
0

Besserer Code könnte wie folgt aussehen:

// Dictionary from (car,length,band) to rate 
static readonly Dictionary<Tuple<int, int, string>, decimal> rates = 
    new Dictionary<Tuple<int, int, string>, decimal> 
    { 
    { Tuple.Create(49, 6, "AA"), 44m }, 
    { Tuple.Create(49, 6, "A"), 60.5m }, 
    { Tuple.Create(49, 6, "B"), 71.5m }, 
    { Tuple.Create(49, 6, "C"), 82.5m }, 
    { Tuple.Create(49, 6, "D"), 88m }, 
    { Tuple.Create(49, 12, "AA"), 80m }, 
    { Tuple.Create(49, 12, "A"), 110m }, 
    { Tuple.Create(49, 12, "B"), 130m }, 
    { Tuple.Create(49, 12, "C"), 150m }, 
    { Tuple.Create(49, 12, "D"), 160m }, 
    { Tuple.Create(48, 6, "AA"), 38.5m }, 
    { Tuple.Create(48, 6, "A"), 55m }, 
    { Tuple.Create(48, 6, "B"), 66m }, 
    { Tuple.Create(48, 6, "C"), 77m }, 
    { Tuple.Create(48, 6, "D"), 85.25m }, 
    { Tuple.Create(48, 12, "AA"), 70m }, 
    { Tuple.Create(48, 12, "A"), 100m }, 
    { Tuple.Create(48, 12, "B"), 120m }, 
    { Tuple.Create(48, 12, "C"), 140m }, 
    { Tuple.Create(48, 12, "D"), 155m }, 
    { Tuple.Create(59, 6, "AA"), 33m }, 
    { Tuple.Create(59, 6, "A"), 49.5m }, 
    { Tuple.Create(59, 6, "B"), 60.5m }, 
    { Tuple.Create(59, 6, "C"), 71.5m }, 
    { Tuple.Create(59, 6, "D"), 82.5m }, 
    { Tuple.Create(59, 12, "AA"), 60m }, 
    { Tuple.Create(59, 12, "A"), 90m }, 
    { Tuple.Create(59, 12, "B"), 110m }, 
    { Tuple.Create(59, 12, "C"), 130m }, 
    { Tuple.Create(59, 12, "D"), 150m }, 
    }; 

static void Main() 
{ 
    Console.WriteLine("Diesel Car Petrol Car Alt. Fuel Car"); 
    Console.WriteLine("TC 49  TC 48  TC 59"); 
    Console.WriteLine("Enter Car Type (TC#): "); 
    int car; 
    if (!int.TryParse(Console.ReadLine(), out car)) 
    { 
    Console.WriteLine("Error"); 
    return; 
    } 

    Console.WriteLine("Enter Licience length in months(6 or 12)"); 
    int length; 
    if (!int.TryParse(Console.ReadLine(), out length)) 
    { 
    Console.WriteLine("Error"); 
    return; 
    } 

    Console.WriteLine("Enter Emission Band (AA, A, B, C, D): "); 
    string band = Console.ReadLine(); 

    var key = Tuple.Create(car, length, band); 
    decimal rate; 
    if (!rates.TryGetValue(key, out rate) 
    { 
    Console.WriteLine("Error finding rate for " + key); 
    return; 
    } 
    Console.WriteLine(rate); 
} 

Dies ist im Wesentlichen die gleiche mybirthname in seiner Antwort vorgeschlagen.

Bemerkung: In der kommenden C# 7.0 (voraussichtlich 2017) wird es eine noch schönere Syntax für Tupel geben, denke ich.

-1

Verwenden Sie switch Schlüsselwort in dieses Problem, wenn, wenn sonst, sonst