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?
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.