não consegui entender essa linha "public int DuracaoTotal => musicas.Sum(m => m.Duracao);"
poderia me explicar e apresentar com código sem o uso do lambda por favor?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
não consegui entender essa linha "public int DuracaoTotal => musicas.Sum(m => m.Duracao);"
poderia me explicar e apresentar com código sem o uso do lambda por favor?
Helio,
Vou tentar explicar.
Vamos supor este código abaixo:
Console.WriteLine("---------------------------------");
Console.WriteLine($"Lista de músicas do álbum:\n");
int? DuracaoTotal = 0;
DuracaoTotal = musicas.Sum(m => m.Duracao)!;
Console.WriteLine($"Duração total: {DuracaoTotal}");
Console.WriteLine("---------------------------------");
A variável "m" é UMA música, já a variável "musicas" são TODAS as músicas.
É feito um "looping" passando por todas as músicas e somando o valor de cada uma colocando dentro da variável "DuracaoTotal".
Comparando agora o código abaixo:
Console.WriteLine("---------------------------------");
Console.WriteLine($"Lista de músicas do álbum:\n");
int? DuracaoTotal = 0;
foreach (Musica m in musicas)
if (m.Duracao != null)
DuracaoTotal += (int)m.Duracao;
Console.WriteLine($"Duração total: {DuracaoTotal}");
Console.WriteLine("---------------------------------");
Faz exatamente a mesma coisa. A única diferença é que ele NÃO usa LAMBDA o que torna o código menos enxuto.
Veja que temos um looping "foreach" para realizar o somatório das durações.
Por favor, leia mais em:
=============================
Expressões lambda e funções anônimas
Artigo - 08/03/2023
Func<int, int> square = x => x * x;
Console.WriteLine(square(5));
// Output:
// 25
https://learn.microsoft.com/pt-br/dotnet/csharp/language-reference/operators/lambda-expressions
=============================
Espero ter ajudado.
[]'s,
Fabio I.