En C#, una tupla es una estructura de datos que organiza datos y contiene dos o más campos de cualquier tipo.
Normalmente, una tupla se crea colocando 2 o más expresiones separadas por comas dentro de un par de paréntesis.
string boast = "All you need to know";
bool success = !string.IsNullOrWhiteSpace(boast);
(bool, int, string) triple = (success, 42, boast);
Una tupla se puede usar en operaciones de asignación e inicialización, como valor devuelto o como argumento de método.
Los campos se extraen con la notación de punto. De forma predeterminada, el primer campo es Item1,
el segundo Item2, etc. Los nombres no predeterminados se explican más abajo.
// 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;
}
Los nombres de campo Item1, etc. no hacen que el código sea legible. El código siguiente muestra
2 formas de nombrar los campos de las tuplas. Fíjate también en que, en el código siguiente, se puede usar var con tuplas y el tipo se infiere. Esto funciona igual de bien para tuplas con campos con nombre y sin nombre.
// 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;
En este ejercicio vas a analizar números de teléfono.
Se te pide que implementes 2 funcionalidades.
Se garantiza que los números de teléfono que se pasan a las rutinas tienen el formato NNN-NNN-NNNN, p. ej. 212-515-9876, y que no son nulos.
Tu análisis debe devolver 3 datos
Implementa el método (estático) PhoneNumber.Analyze() para producir la información del número de teléfono.
PhoneNumber.Analyze("631-555-1234");
// => (false, true, "1234")
Implementa el método (estático) PhoneNumber.IsFake() para detectar si el número de teléfono es falso usando la información del número de teléfono producida en la tarea 1.
PhoneNumber.IsFake(PhoneNumbers.Analyze("631-555-1234"));
// => true
Regístrate en Exercism para aprender y dominar C# con 62 conceptos178 ejercicios y mentoría humana real, todo gratis.