TUPLAS EM C#
O recurso de tuplas fornece sintaxe concisa para agrupar vários elementos de dados em uma estrutura de dados leve.
A baixo apresentarei o exemplo de tuplas.
TUPLAS
Foi Criada uma Classe chamada LeituraArquivo onde contém o método que faz o retorno de vários tipos de dados em uma única chamada de método, exemplificando a fácil utilização de tuplas.
Console.WriteLine("DECLARANDO TUPLAS\n");
(int Id, string Nome, string Sobrenome) tupla = (1, "Marcus", "Vogado"); //Declarando uma tupla, maneira mais recomendada por poder nomear os atributos
Console.WriteLine($"Id: {tupla.Id} Nome: {tupla.Nome} Sobrenome: {tupla.Sobrenome}");
//Desvantagem destas outras duas maneiras é que não conseguimos nomear os atributos
ValueTuple<int, string, string> outroExemploTupla = (2, "Marcus", "Vogado");
var outraTupla = Tuple.Create((1, "Marcus", "Vogado"));
Console.WriteLine();
// UTILIZANDO MÉTODOS COM TUPLAS
Console.WriteLine("UTILIZANDO MÉTODO COM TUPLAS COMO RETORNO\n");
LeituraArquivo arquivo = new LeituraArquivo();
//var (sucesso, linhasArquivo, quantidaDeLinhas) = arquivo.LerArquivo("Arquivos/ArquivoLeitura.txt"); Recebendo o retorno do método com tuplas
var (sucesso, linhasArquivo, _) = arquivo.LerArquivo("Arquivos/ArquivoLeitura.txt");// Quando queremos descartar alguma informação que
// vem da tupla utilizamos o underline (_) DESCARTE
if (sucesso)
{
foreach (var linha in linhasArquivo)
{
Console.WriteLine(linha);
}
}
else
{
Console.WriteLine("NÃO FOI POSSÍVEL LER O ARQUIVO");
}
public class LeituraArquivo
{
//Criaando um tupla onde retorna três tipos de informações
public (bool Sucesso, string[] Linhas, int QuantidadeDeLinhas) LerArquivo(string arquivoPath)
{
try
{
string[] linhas = File.ReadAllLines(arquivoPath);
return (true, linhas, linhas.Count());
}
catch (Exception ex)
{
return (false, new string[0], 0);
}
}
}