In C# ist ein Tupel eine Datenstruktur, die Daten organisiert und zwei oder mehr Felder beliebigen Typs enthält.
Ein Tupel erzeugst du normalerweise, indem du 2 oder mehr Ausdrücke durch Kommas getrennt in runde Klammern setzt.
string boast = "All you need to know";
bool success = !string.IsNullOrWhiteSpace(boast);
(bool, int, string) triple = (success, 42, boast);
Ein Tupel kannst du bei Zuweisungen und Initialisierungen verwenden, als Rückgabewert oder als Argument einer Methode.
Felder extrahierst du mit der Punkt-Syntax. Standardmäßig heißt das erste Feld Item1, das zweite Item2 und so weiter. Namen, die davon abweichen, besprechen wir weiter unten.
// initialization
(int, int, int) vertices = (90, 45, 45);
// assignment
vertices = (60, 60, 60);
// return value
(bool, int) GetSameOrBigger(int num1, int num2)
{
return (num1 == num2, num1 > num2 ? num1 : num2);
}
// method argument
int Add((int, int) operands)
{
return operands.Item1 + operands.Item2;
}
Feldnamen wie Item1 machen den Code nicht gerade lesbar. Der folgende Code zeigt 2 Möglichkeiten, die Felder von Tupeln zu benennen. Beachte außerdem, dass du im folgenden Code var mit Tupeln verwenden und den Typ ableiten lassen kannst. Das funktioniert genauso gut bei Tupeln mit benannten wie mit unbenannten Feldern.
// name items in declaration
(bool success, string message) results = (true, "well done!");
bool mySuccess = results.success;
string myMessage = results.message;
// name items in creating expression
var results2 = (success: true, message: "well done!");
bool mySuccess2 = results2.success;
string myMessage2 = results2.message;
In dieser Übung analysierst du Telefonnummern.
Du sollst zwei Features implementieren.
Telefonnummern, die an die Routinen übergeben werden, haben garantiert die Form
NNN-NNN-NNNN, z. B. 212-515-9876, und sind nie null.
Deine Analyse sollte drei Angaben zurückgeben
Implementiere die (statische) Methode PhoneNumber.Analyze(), um die Informationen zur Telefonnummer zu erzeugen.
PhoneNumber.Analyze("631-555-1234");
// => (false, true, "1234")
Implementiere die (statische) Methode PhoneNumber.IsFake(), um mithilfe der Telefonnummer-Informationen aus Aufgabe 1 zu erkennen, ob die Telefonnummer gefälscht ist.
PhoneNumber.IsFake(PhoneNumbers.Analyze("631-555-1234"));
// => true
Melde dich bei Exercism an, um C# mit 62 Konzepte178 Übungen und echtem menschlichen Mentoring zu lernen und zu meistern, alles kostenlos.