En C#, una tupla es una estructura de datos que organiza información y que contiene dos o más campos de cualquier tipo.
Una tupla se suele crear 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 de retorno o como argumento de un método.
Los campos se extraen con la sintaxis de punto. De forma predeterminada, el primer campo es Item1, el segundo Item2, etc. Los nombres que no son los 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 de abajo muestra 2 maneras de nombrar los campos de las tuplas. Fíjate también, en el código de abajo, que var se puede usar con tuplas y que 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.
Debes implementar 2 funcionalidades.
Se garantiza que los números de teléfono que se pasan a las rutinas tienen el formato NNN-NNN-NNNN, por ejemplo 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.