Arquivo LinqFilter.cs :
namespace Exercicio10.Filtros;
internal class LinqFilter
{
//ATIVIDADE 01: Dada uma lista de números, crie uma consulta LINQ para retornar apenas os elementos únicos da lista.
public static void FiltrarElementosUnicos()
{
List<int> numeros = new List<int> { 1, 2, 3, 2, 4, 5, 3, 6, 7, 8, 9, 1 };
var numerosUnicos = numeros.Distinct();
Console.WriteLine("Números únicos na lista:");
foreach (var numero in numerosUnicos)
{
Console.WriteLine($"- {numero}");
}
}
//ATIVIDADE 02: Dadas duas listas de números, crie uma consulta LINQ para retornar uma lista que contém apenas os números que estão presentes em ambas as listas.
public static void FiltrarNumerosComuns()
{
List<int> lista1 = new List<int> { 1, 2, 3, 4, 5 };
List<int> lista2 = new List<int> { 3, 4, 5, 6, 7 };
var numerosComuns = lista1.Intersect(lista2);
Console.WriteLine("Números comuns entre as duas listas:");
foreach (var numero in numerosComuns)
{
Console.WriteLine($"- {numero}");
}
}
//ATIVIDADE 03: Dada uma lista de livros com título, autor e ano de publicação, crie uma consulta LINQ para retornar uma lista com os títulos dos livros publicados após o ano 2000, ordenados alfabeticamente.
class Livro
{
public required string Titulo { get; set; }
public required string Autor { get; set; }
public int AnoPublicacao { get; set; }
}
public static void FiltrarLivros()
{
List<Livro> livros = new List<Livro>
{
new Livro { Titulo = "Aprendendo LINQ", Autor = "João Silva", AnoPublicacao = 2005 },
new Livro { Titulo = "Programação em C#", Autor = "Ana Oliveira", AnoPublicacao = 2010 },
new Livro { Titulo = "Algoritmos e Estruturas de Dados", Autor = "Carlos Santos", AnoPublicacao = 1998 },
new Livro { Titulo = "Introdução à Inteligência Artificial", Autor = "Mariana Costa", AnoPublicacao = 2021 },
new Livro { Titulo = "Design Patterns", Autor = "Paulo Rocha", AnoPublicacao = 2002 }
};
var titulosLivros = livros.Where(livro => livro.AnoPublicacao > 2000).OrderBy(livro => livro.Titulo).Select(livro => livro.Titulo);
Console.WriteLine($"Títulos de livros publicados após o ano 2000 ordenados alfabeticamente: ");
foreach (var titulo in titulosLivros)
{
Console.WriteLine($"- {titulo}");
}
}
//ATIVIDADE 04: Dada uma lista de produtos com nome e preço, crie uma consulta LINQ para calcular o preço médio dos produtos.
class Produto
{
public required string Nome { get; set; }
public required decimal Preco { get; set; }
}
public static void CalcularPrecoMedio()
{
List<Produto> produtos = new List<Produto>
{
new Produto {Nome = "Laptop", Preco = 1200},
new Produto {Nome = "Smartphone", Preco = 800},
new Produto {Nome = "Tablet", Preco = 500},
new Produto {Nome = "Câmera", Preco = 300}
};
var precoMedio = produtos.Average(p => p.Preco);
Console.WriteLine($"Preço médio dos produtos: {precoMedio:C} reais");
}
//ATIVIDADE 05: Dada uma lista de strings, crie uma consulta LINQ para ordenar as palavras por comprimento e retornar apenas aquelas que tenham mais de 3 caracteres.
public static void OrdenarPalavras()
{
List<string> palavras = new List<string> { "cachorro", "gato", "elefante", "leão", "cobra", "oi" };
var palavrasFiltradas = palavras.Where(p => p.Length > 3).OrderBy(p => p.Length);
Console.WriteLine("Palavras com mais de três caracteres, ordenadas por comprimento: ");
foreach (var palavra in palavrasFiltradas)
{
Console.WriteLine($"- {palavra}");
}
}
//ATIVIDADE 06: Dada uma lista de inteiros, crie uma consulta LINQ para retornar apenas os números pares.
public static void NumerosPares()
{
List<int> numeros = new List<int> { 8, 1, 6, 3, 9, 4, 2, 5, 7, 10 };
var numerosPares = numeros.Where(n => n % 2 == 0).Order();
Console.WriteLine("Números Pares: ");
foreach (var numero in numerosPares)
{
Console.WriteLine($"- {numero}");
}
}
}
Arquivo Program.cs:
using Exercicio10.Filtros;
LinqFilter.FiltrarElementosUnicos();
Console.WriteLine();
LinqFilter.FiltrarNumerosComuns();
Console.WriteLine();
LinqFilter.FiltrarLivros();
Console.WriteLine();
LinqFilter.CalcularPrecoMedio();
Console.WriteLine();
LinqFilter.OrdenarPalavras();
Console.WriteLine();
LinqFilter.NumerosPares();