Boa noite pessoal!
Nessa série de posts vou listar algumas das melhorias disponíveis no C# 7.0 e superior bem como exemplos de utilização das mesmas, espero que seja útil para todos.
Uma tupla nada mais é que um agrupador de valor. Caso você desenvolva utilizando em outras linguagens provavelmente já se deparou com esse conceito levando em conta que ele não é nenhuma novidade.
Um exemplo clássico para utilização de Tuplas é quando necessitamos retornar mais de um valor em um método e por exemplo, não queremos utilizar uma variável do tipo out.
Para facilitar nosso trabalho após o retorno dos valores em tupla, o C# permite desconstruir a mesma.
Porem, além dos tipos primitivos qualquer outro tipo de dado pode ser desconstruído desde que ele implemente um método de deconstrução. Se por exemplo fossemos descontruir uma classe Item, a sintáxe seria a seguinte:
Na documentação oficial da microsoft existem diversas outras funcionalidades disponíveis para usarmos durante a operação com tuplas, como por exemplo operadores == e !-.
Recomendo a leitura de todos para mais exemplos e possibilidades.
Referência: https://docs.microsoft.com/pt-br/dotnet/csharp/tuples