Em C#, uma tupla é uma estrutura de dados que organiza dados, contendo dois ou mais campos de qualquer tipo.
Uma tupla normalmente é criada colocando 2 ou mais expressões separadas por vírgulas, dentro de um par de parênteses.
string boast = "All you need to know";
bool success = !string.IsNullOrWhiteSpace(boast);
(bool, int, string) triple = (success, 42, boast);
Uma tupla pode ser usada em operações de atribuição e inicialização, como valor de retorno ou argumento de método.
Os campos são extraídos usando a sintaxe de ponto. Por padrão, o primeiro campo é Item1, o segundo Item2, etc. Nomes diferentes do padrão são discutidos abaixo.
// 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;
}
Nomes de campos como Item1 etc. não deixam o código legível. O código abaixo mostra 2 maneiras de nomear os campos de tuplas. Observe também, no código abaixo, que var pode ser usado com tuplas e o tipo é inferido. Isso funciona igualmente bem para tuplas com campos nomeados e não nomeados.
// 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;
Neste exercício, você vai analisar números de telefone.
Você deve implementar 2 funcionalidades.
Os números de telefone passados para as rotinas têm a garantia de estar no formato NNN-NNN-NNNN, por exemplo 212-515-9876, e não são nulos.
Sua análise deve retornar 3 dados:
Implemente o método (estático) PhoneNumber.Analyze() para produzir as informações do número de telefone.
PhoneNumber.Analyze("631-555-1234");
// => (false, true, "1234")
Implemente o método (estático) PhoneNumber.IsFake() para detectar se o número de telefone é falso usando as informações do número de telefone produzidas na tarefa 1.
PhoneNumber.IsFake(PhoneNumbers.Analyze("631-555-1234"));
// => true
Crie sua conta no Exercism para aprender e dominar C# com 62 conceitos178 exercícios e mentoria humana de verdade, tudo de graça.