1
resposta

[Projeto] Projeto Resolvido

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();
1 resposta

Oi, Matheus! Como vai?

Seu projeto está muito bem estruturado e o uso do LINQ em cada atividade foi certeiro. Gostei bastante da forma como você nomeou os métodos, deixando o propósito claro e o código fácil de entender.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!