sábado, 7 de outubro de 2017

Comparando Listas de Compras

Vamos demonstrar um problema prático, que até poderia ocorrer no dia-a-dia.

Supondo que temos 2 listas de compras:
  • LISTA DE COMPRAS 1: "Maçã","Banana","Pão","Amaciante","Leite","Carne","Arroz","Feijão","Chocolate","Farinha"
  • LISTA DE COMPRAS 2: "Feijão","Leite","Pão","Maçã","Sabonete","Carne","Banana","Arroz","Xampu"

E que necessitamos saber:
  • Quais itens pertencem a uma das listas e não pertence à outra?
  • Como montar uma lista de compras com os itens das 2 listas?

Powershell pode nos ajudar com essa tarefa via Compare-Object para comparar as 2 listas de compras.

Abaixo, um exemplo de código para realizar essa tarefa.
CLS
Write-Host "-----------------------------------------------------------------"
$ListaDeCompras1=@("Maçã","Banana","Pão","Amaciante","Leite","Carne","Arroz","Feijão","Chocolate","Farinha")
Write-Host "Lista de Compras 1: ["$ListaDeCompras1.Count"itens ]"
Write-Host -ForeGroundColor Cyan $ListaDeCompras1
Write-Host "-----------------------------------------------------------------"
$ListaDeCompras2=@("Feijão","Leite","Pão","Maçã","Sabonete","Carne","Banana","Arroz","Xampu")
Write-Host "Lista de Compras 2: ["$ListaDeCompras2.Count"itens ]"
Write-Host -ForeGroundColor Cyan $ListaDeCompras2
Write-Host ""

$l1=@()
$l2=@()

Write-Host "Itens que pertencem a uma das listas e não pertence à outra:"
ForEach ($i in Compare-Object $ListaDeCompras1 $ListaDeCompras2) { $l1 += $i.InputObject}
$l1 = $l1 | Sort-Object
Write-Host "["$l1.Count"itens ]"
Write-Host -ForeGroundColor Yellow $l1

Write-Host "------------------------------------------------------------------"
Write-Host "Lista ordenada com os itens que pertencem às duas listas:"
ForEach ($i in Compare-Object $ListaDeCompras1 $ListaDeCompras2 -IncludeEqual) { $l2 += $i.InputObject}
$l2 = $l2 | Sort-Object
Write-Host "["$l2.Count"itens ]"
Write-Host -ForeGroundColor Green $l2
Write-Host ""

Produzindo a seguinte saída.

Nenhum comentário:

Postar um comentário