Há situações em que precisamos atualizar uma propriedade comum em uma lista de objetos, onde todos os elementos possuem o mesmo valor. Nesse caso, não é necessário criar um foreach
(loop de iteração), pois como não será implementado nada complexo e apenas atualizar o nome do vendedor podemos usar o List.ForEach
para atualizar em lote todos os objetos vendidos.
Vendedor de Carro
Suponha que tenhamos uma lista de carros vendidos por um único vendedor e precisamos atualizar o nome do vendedor em todas as entradas, na propriedade de ‘Vendendor’. Em vez de fazer dessa forma(codigo abaixo):
List<Vendas> vendas = new List<Vendas>();
foreach (Vendas v in vendas)
{
v.Vendedor = "Vitor";
}
Podemos simplificar o processo da seguinte forma:
vendas.ForEach(vend => { vend.Vendedor = "Vitor"; });
Observe a diferença significativa na sintaxe. No entanto é importante mencionar que o uso de list.ForEach
é recomendado para operações simples. Portanto, certifique-se de avaliar adequadamente o contexto em que você pretende usar o ForEach
.
Atualizar a Idade da Pessoa
Suponhamos que temos um hangfire
que todos os dias executa um job responsável por atualizar a idade das pessoas nos aniversários, uma parte do código pode ser resumida desse jeito:
public void AtualizarIdadeAniversariante(List<Pessoa> pessoas) => pessoas.ForEach(pessoa => { pessoa.Idade++; });
Desempenho
A diferença entre List.ForEach
e foreach é geralmente mínima para operações simples, a escolha deve se basear mais na legibilidade do código e na simplicidade da tarefa. O uso de List.ForEach
é uma maneira conveniente e legível de aplicar uma operação a todos os elementos de uma lista, mas não é necessariamente mais rápido do que um loop foreach. O desempenho real pode depender do contexto e do número de elementos na lista. Use List.ForEach
quando a operação é simples e pode ser aplicada a todos os elementos diretamente, e use foreach quando a lógica é mais complexa ou envolve filtragem, transformação ou outros processamentos específicos.
Top comments (0)