1
resposta

[Projeto] Consolidando listas de produtos

List<string> produtosPrincipal = new List<string> { "Mouse", "Teclado", "Monitor", "Joystick"};  
List<string> produtosSecundaria = new List<string> { "Headset", "Webcam", "Smartphone", "Mousepad" };  

produtosPrincipal.AddRange(produtosSecundaria);

Console.WriteLine("Lista consolidada:");
foreach (var item in produtosPrincipal)
{
    Console.WriteLine(item);
}
1 resposta

Olá, Eduardo. Como vai?

Excelente código! Sua implementação está perfeita e demonstra de forma muito clara como realizar a concatenação de coleções em C#. O uso do método AddRange() é exatamente a melhor prática para esse cenário, pois ele é altamente performático e evita a necessidade de criar um laço foreach manual apenas para copiar os elementos de uma lista para a outra.

Para complementar o seu projeto e expandir seus conhecimentos sobre manipulação de coleções, existem dois pontos e recursos avançados no C# que são muito utilizados no mercado para consolidar dados:


1. Evitando duplicidade com HashSet

O método AddRange() adiciona todos os itens cegamente. Se a sua produtosSecundaria contivesse um item que já existia na produtosPrincipal (como outro "Mouse"), a lista final ficaria com elementos duplicados.

Se o seu objetivo de negócio ao consolidar listas for garantir que não existam produtos repetidos, a estrutura de dados ideal não é a List<T>, mas sim o HashSet<T>. Veja como fazer essa conversão de forma simples:

// Unindo as duas listas e removendo duplicatas automaticamente
HashSet<string> produtosUnicos = new HashSet<string>(produtosPrincipal);
produtosUnicos.UnionWith(produtosSecundaria);

Console.WriteLine("Lista consolidada sem duplicatas:");
foreach (var item in produtosUnicos)
{
    Console.WriteLine(item);
}

2. Consolidando com LINQ (Concat e Union)

Outra abordagem moderna e muito elegante no C# é utilizar o LINQ (adicionando o using System.Linq; no topo do código). O LINQ nos permite criar uma terceira lista consolidada sem modificar as duas listas originais, o que é uma excelente prática de imutabilidade:

  • Concat(): Junta as listas mantendo duplicados (comportamento igual ao seu AddRange).
  • Union(): Junta as listas e remove automaticamente qualquer elemento repetido.
// Cria uma nova coleção combinada usando LINQ
var listaConsolidadaLinq = produtosPrincipal.Union(produtosSecundaria).ToList();

Parabéns pela resolução da atividade e por continuar consolidando tão bem os seus estudos em coleções do C#!

Espero que possa ter lhe ajudado!