Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using Curso.CSharp.ConsoleAppEjerciciosExtra.Linq.Models;
- namespace ConsoleApp2
- {
- public class Program
- {
- public static void Main(string[] args)
- {
- Console.Clear();
- // Consultas.Query1();
- // Consultas.Query2();
- // Consultas.Query3();
- // Consultas.Query4();
- // Consultas.Query5();
- // Consultas.Query6();
- // Consultas.Query7();
- // Consultas.Query8();
- // Consultas.Query9();
- Consultas.Query10();
- Console.ReadKey();
- }
- }
- //TODO Resuelve las consultas mediante LINQ
- public static class Consultas
- {
- public static ModelNorthwind db = new ModelNorthwind();
- //TODO Retorna una lista de productos agrupados por Categoría mediante LINQ
- public static void Query1()
- {
- var productosPorCategoria = db.Products_by_Category
- .Select(x => new { x.CategoryName, x.ProductName })
- .OrderBy(x => x.CategoryName);
- //foreach (var producto in productosPorCategoria)
- //{
- // Console.WriteLine($"{producto.CategoryName} {producto.ProductName}");
- //}
- }
- //TODO Retorna una lista de productos agrupados por la primera letra del nombre de producto mediante LINQ
- public static void Query2()
- {
- var productosPorFirstLetter = db.Products
- .Select(x => x.ProductName)
- .OrderBy(x => x);
- //foreach (var producto in productosPorFirstLetter)
- //{
- // Console.WriteLine($"{producto}");
- //}
- }
- //TODO Retorna el array ordenado mediante LINQ
- public static void Query3()
- {
- string[] words = { "cherry", "apple", "blueberry" };
- var orderedWords = words.OrderBy(c => c).ToList();
- //foreach (var item in orderedWords)
- //{
- // Console.WriteLine($"{item}");
- //}
- }
- //TODO Retorna el array transformado en un diccionarios mediante LINQ
- public static void Query4()
- {
- var scoreRecords = new[] {
- new {Name = "Alice", Score = 50},
- new {Name = "Bob" , Score = 40},
- new {Name = "Cathy", Score = 45}
- };
- var scoresToDict = scoreRecords.Select(x => x).ToDictionary(x => x.Name, x => x.Score);
- foreach (var item in scoresToDict)
- {
- Console.WriteLine($"Clave: {item.Key} Valor: {item.Value}");
- }
- }
- //TODO Retorna una lista solo con los elementos convertibles a Double mediante LINQ
- // Utiliza OfType<T>()
- public static void Query5()
- {
- object[] numbers = { null, 1.0, "two", 3, "four", 5, "six", 7.0 };
- var resultado = numbers.OfType<double>().Select(x => x).ToList();
- foreach (var item in resultado)
- {
- Console.WriteLine($"{item}");
- }
- }
- //TODO Retorna una lista de categorias sin duplicados utilizando la tabla de productos mediante LINQ
- public static void Query6()
- {
- var listaCategorias = db.Products
- .Select(x => x.Categories.CategoryName)
- .Distinct()
- .ToList();
- foreach (var cat in listaCategorias)
- {
- Console.WriteLine($"{cat}");
- }
- }
- //TODO Retorna el lista con los elementos de los dos arrays mediante LINQ
- // Utiliza el método Union de LINQ
- public static void Query7()
- {
- int[] numbersA = { 0, 2, 4, 5, 6, 8, 9 };
- int[] numbersB = { 1, 3, 5, 7, 8 };
- var unionFinal = numbersA.Union(numbersB);
- foreach (var item in unionFinal)
- {
- Console.WriteLine($"{item}");
- }
- }
- //TODO Retorna la lista con los elementos repetidos en los dos arrays mediante LINQ
- // Utiliza el método Intersect de LINQ
- public static void Query8()
- {
- int[] numbersA = { 0, 2, 4, 5, 6, 8, 9 };
- int[] numbersB = { 1, 3, 5, 7, 8 };
- var intersectFinal = numbersA.Intersect(numbersB);
- foreach (var item in intersectFinal)
- {
- Console.WriteLine($"{item}");
- }
- }
- //TODO Retorna la lista con los elementos más la posición mediante LINQ (la primera posición es 1)
- public static void Query9()
- {
- int[] numbers = new int[] { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 };
- var resultado = numbers.Select((value, index) => new { Posicion = index + 1 , Value = value })
- .ToList();
- foreach (var item in resultado)
- {
- Console.WriteLine($"Posición: {item.Posicion}, Valor: {item.Value}");
- }
- }
- //TODO Retorna una lista de clientes con la compañia de transporte que gestiona la entrega de sus pedidos mediante LINQ
- // Utiliza un JOIN de LINQ donde suppliers.Country es igual customers.Country
- // Muestra los siguientes campos suppliers.Country, suppliers.SupplierName, customers.CompanyName
- // Tablas: Customers y Suppliers
- public static void Query10()
- {
- var resultado = db.Suppliers
- .Join(db.Customers,
- s => s.Country,
- c => c.Country,
- (s, c) => new { s.Country, SupplierName = s.CompanyName, c.CompanyName })
- .ToList();
- foreach (var item in resultado)
- {
- Console.WriteLine($"Cliente: {item.CompanyName}, Compañía de transpote: {item.SupplierName}");
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement