ML

Marcus Lago06/06/2023 23:17
Compartilhe

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);

    }

    }

    }

    Compartilhe
    Recomendado para você
    • Curso Unity 3D Game Developer
    • Curso Blockchain Specialist
    • Curso Swift & iOS Developer
    Comentários (0)
    Recomendado para vocêCatalog