Baixe o app para aproveitar ainda mais
Prévia do material em texto
PONTIFÍCIA UNIVERSIDADE CATÓLICA DE MINAS GERAIS CURSO – SISTEMAS DE INFORMAÇÃO – NUCLEO SÃO GABRIEL TÉCNICAS AVANÇADAS DE PROGRAMAÇÃO ATIVIDADE – LINQ Aluno: Luccas da Silva Machado Matricula: 687517 Belo Horizonte, 07 de novembro de 2021 1. Defina o conceito de Linq utilizado no .NET e explique suas principais vantagens e desvantagens. Dê exemplos de sua utilização. O conceito de Linq veio como forma de simplificar a manipulação de dados de outras linguagens como SQL, XML e afins, utilizando o próprio C# para fazer comandos funcionais nos dados contidos nessas linguagens. Sua Vantagem é justamente essa, trabalhar de forma mais sucinta. Crie uma lista de dados de carros (os dados podem ser lidos de um arquivo), com as seguintes informações: Placa, Modelo, Cor e Ano. Utilizando LINQ execute e exiba os resultados das seguintes consultas: (a) Exiba todas as informações da lista de carros (b) Exiba a quantidade de carros de um determinado modelo informado pelo usuário (c) Exiba todas as informações dos carros que terminam a placa com o número 1 e possuem a cor preto. (d) Exiba a quantidade de cada modelo, ordenando por modelo (e) Exiba todas as informações dos carros que são do modelo que mais aparece na lista de carros using System; using System.Collections.Generic; using System.Linq; namespace AtividadeLinq { public class Carros { public string modelo; public string marca; public string placa; public string cor; public int ano; public Carros(string modelo, string marca, string placa, int ano,string cor) { this.modelo = modelo; this.marca = marca; this.placa = placa; this.ano = ano; this.cor = cor; } } class Program { static void Main(string[] args) { List<Carros> carros = new List<Carros>(); carros.Add(new Carros("Fox", "VolksWagen", "FFF-2222", 2010, "azul")); carros.Add(new Carros("Fusca", "VolksWagen", "AAA-6461", 1984, "preto")); carros.Add(new Carros("Jetta", "VolksWagen", "DDD-1214", 2021, "verde")); carros.Add(new Carros("Uno", "Fiat", "CCC-2244", 2005, "amarelo")); carros.Add(new Carros("Bravo", "Fiat", "HHH-2141", 2014, "vermelho")); carros.Add(new Carros("Toro", "Fiat", "KKK-3654", 2020, "cinza")); carros.Add(new Carros("Fiesta", "Ford", "GGG-3245", 2015, "preto")); carros.Add(new Carros("Focus", "Ford", "BBB-6565", 2019, "branco")); carros.Add(new Carros("Fusion", "Ford", "LLL-7571", 2018, "preto")); carros.Add(new Carros("Hb20", "Hyunday", "VVV-6334", 2020, "branco")); carros.Add(new Carros("I30", "Hyunday", "XXX-4694", 2019, "azul")); carros.Add(new Carros("Santa Fe", "Hyunday", "NNN-3247", 2014, "grafite")); Menu(carros); } public static void Menu(List<Carros> carros) { string op = ""; while (op != "0") { Console.Clear(); Console.WriteLine("Atividade de Linq"); Console.Write("1 - Exiba todas as informações da lista de carros\n" + "2 - Exiba a quantidade de carros de um determinado modelo informado pelo usuário\n" + "3 - Exiba todas as informações dos carros que terminam a placa com o número 1 e possuem a cor preto.\n" + "4 - Exiba a quantidade de cada modelo, ordenando por modelo\n" + "5 - Exiba todas as informações dos carros que são do modelo que mais aparece na lista de carros\n" + "0 - Sair\n"); op = Console.ReadLine(); switch (op) { case "1": ExibeTodosItens(carros); break; case "2": Console.WriteLine("Digite o modelo para saber quantos existem"); string modelo = Console.ReadLine(); ExibeQuant(carros,modelo); break; case "3": InfoCar(carros); break; case "4": OrdernaModelo(carros); break; case "5": break; case "0": Console.WriteLine("Ate a proxima ;D"); break; default: Console.WriteLine("Comando nao existe, tem um dentro da sequencia"); break; } Console.ReadKey(); } } public static void ExibeTodosItens(List<Carros> carros) { var query = from c in carros select c; foreach (var s in query) { Console.WriteLine($"Marca: {s.marca} | Modelo: {s.modelo} | Placa: {s.placa} | Ano: {s.ano} | Cor:{s.cor}"); } } public static void ExibeQuant(List<Carros> carros, string busca) { //var query = from c in carros where c.modelo.Equals(busca) select c; var query = from c in carros where c.modelo == busca group c by new { c.modelo } into CarrosAgrup select new { CarrosAgrup.Key.modelo, qtd = CarrosAgrup.Count() }; foreach (var item in query) { Console.WriteLine($"modelo: {item.modelo} Quantidade :{item.qtd}"); } } public static void InfoCar(List<Carros> carros) { var query = from c in carros where c.placa.EndsWith("1") && c.cor == "preto" select c; foreach (var s in query) { Console.WriteLine($"Marca: {s.marca} | Modelo: {s.modelo} | Placa: {s.placa} | Ano: {s.ano} | Cor:{s.cor}"); } } public static void OrdernaModelo(List<Carros>carros) { var query= from c in carros orderby c.modelo ascending select c; foreach (var s in query) { Console.WriteLine($"Marca: {s.marca} | Modelo: {s.modelo} | Placa: {s.placa} | Ano: {s.ano} | Cor:{s.cor}"); } } /* public static void MaisAparecem(List<Carros> carros) { var query = (from c in carros group c by new { c.marca } into CarrosAgrupados select new { CarrosAgrupados.Key.marca, qtd = CarrosAgrupados.Count() }).Max(qtd => qtd); foreach (var item in query) { Console.WriteLine($"modelo: {item.modelo} Quantidade :{item.qtd}"); } }*/ } }
Compartilhar