Advertisement
Guest User

Untitled

a guest
Mar 18th, 2019
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.16 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using Curso.CSharp.ConsoleAppEjerciciosExtra.Linq.Models;
  7.  
  8.  
  9. namespace ConsoleApp2
  10.  
  11. {
  12.  
  13. public class Program
  14.  
  15. {
  16.  
  17. public static void Main(string[] args)
  18.  
  19. {
  20.  
  21. Console.Clear();
  22. // Consultas.Query1();
  23. // Consultas.Query2();
  24. // Consultas.Query3();
  25. // Consultas.Query4();
  26. // Consultas.Query5();
  27. // Consultas.Query6();
  28. // Consultas.Query7();
  29. // Consultas.Query8();
  30. // Consultas.Query9();
  31. Consultas.Query10();
  32.  
  33. Console.ReadKey();
  34.  
  35. }
  36.  
  37. }
  38.  
  39.  
  40.  
  41. //TODO Resuelve las consultas mediante LINQ
  42.  
  43. public static class Consultas
  44.  
  45. {
  46. public static ModelNorthwind db = new ModelNorthwind();
  47.  
  48.  
  49. //TODO Retorna una lista de productos agrupados por Categoría mediante LINQ
  50.  
  51. public static void Query1()
  52.  
  53. {
  54. var productosPorCategoria = db.Products_by_Category
  55. .Select(x => new { x.CategoryName, x.ProductName })
  56. .OrderBy(x => x.CategoryName);
  57.  
  58.  
  59. //foreach (var producto in productosPorCategoria)
  60. //{
  61. // Console.WriteLine($"{producto.CategoryName} {producto.ProductName}");
  62. //}
  63.  
  64. }
  65.  
  66. //TODO Retorna una lista de productos agrupados por la primera letra del nombre de producto mediante LINQ
  67.  
  68. public static void Query2()
  69.  
  70. {
  71. var productosPorFirstLetter = db.Products
  72. .Select(x => x.ProductName)
  73. .OrderBy(x => x);
  74.  
  75.  
  76. //foreach (var producto in productosPorFirstLetter)
  77. //{
  78. // Console.WriteLine($"{producto}");
  79. //}
  80. }
  81.  
  82. //TODO Retorna el array ordenado mediante LINQ
  83.  
  84. public static void Query3()
  85.  
  86. {
  87.  
  88. string[] words = { "cherry", "apple", "blueberry" };
  89. var orderedWords = words.OrderBy(c => c).ToList();
  90.  
  91. //foreach (var item in orderedWords)
  92. //{
  93. // Console.WriteLine($"{item}");
  94.  
  95. //}
  96.  
  97. }
  98.  
  99. //TODO Retorna el array transformado en un diccionarios mediante LINQ
  100.  
  101. public static void Query4()
  102.  
  103. {
  104.  
  105. var scoreRecords = new[] {
  106. new {Name = "Alice", Score = 50},
  107. new {Name = "Bob" , Score = 40},
  108. new {Name = "Cathy", Score = 45}
  109. };
  110.  
  111. var scoresToDict = scoreRecords.Select(x => x).ToDictionary(x => x.Name, x => x.Score);
  112.  
  113. foreach (var item in scoresToDict)
  114. {
  115. Console.WriteLine($"Clave: {item.Key} Valor: {item.Value}");
  116. }
  117. }
  118.  
  119. //TODO Retorna una lista solo con los elementos convertibles a Double mediante LINQ
  120.  
  121. // Utiliza OfType<T>()
  122.  
  123. public static void Query5()
  124.  
  125. {
  126. object[] numbers = { null, 1.0, "two", 3, "four", 5, "six", 7.0 };
  127.  
  128. var resultado = numbers.OfType<double>().Select(x => x).ToList();
  129.  
  130.  
  131. foreach (var item in resultado)
  132. {
  133. Console.WriteLine($"{item}");
  134. }
  135. }
  136.  
  137.  
  138. //TODO Retorna una lista de categorias sin duplicados utilizando la tabla de productos mediante LINQ
  139. public static void Query6()
  140.  
  141. {
  142. var listaCategorias = db.Products
  143. .Select(x => x.Categories.CategoryName)
  144. .Distinct()
  145. .ToList();
  146.  
  147.  
  148. foreach (var cat in listaCategorias)
  149. {
  150. Console.WriteLine($"{cat}");
  151. }
  152.  
  153. }
  154.  
  155.  
  156.  
  157. //TODO Retorna el lista con los elementos de los dos arrays mediante LINQ
  158.  
  159. // Utiliza el método Union de LINQ
  160.  
  161. public static void Query7()
  162.  
  163. {
  164.  
  165. int[] numbersA = { 0, 2, 4, 5, 6, 8, 9 };
  166.  
  167. int[] numbersB = { 1, 3, 5, 7, 8 };
  168.  
  169. var unionFinal = numbersA.Union(numbersB);
  170.  
  171. foreach (var item in unionFinal)
  172. {
  173. Console.WriteLine($"{item}");
  174. }
  175.  
  176.  
  177. }
  178.  
  179.  
  180.  
  181. //TODO Retorna la lista con los elementos repetidos en los dos arrays mediante LINQ
  182.  
  183. // Utiliza el método Intersect de LINQ
  184.  
  185. public static void Query8()
  186.  
  187. {
  188.  
  189. int[] numbersA = { 0, 2, 4, 5, 6, 8, 9 };
  190.  
  191. int[] numbersB = { 1, 3, 5, 7, 8 };
  192.  
  193. var intersectFinal = numbersA.Intersect(numbersB);
  194.  
  195. foreach (var item in intersectFinal)
  196. {
  197. Console.WriteLine($"{item}");
  198. }
  199. }
  200.  
  201.  
  202.  
  203. //TODO Retorna la lista con los elementos más la posición mediante LINQ (la primera posición es 1)
  204.  
  205. public static void Query9()
  206.  
  207. {
  208.  
  209. int[] numbers = new int[] { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 };
  210.  
  211. var resultado = numbers.Select((value, index) => new { Posicion = index + 1 , Value = value })
  212. .ToList();
  213.  
  214. foreach (var item in resultado)
  215. {
  216. Console.WriteLine($"Posición: {item.Posicion}, Valor: {item.Value}");
  217. }
  218. }
  219.  
  220.  
  221.  
  222. //TODO Retorna una lista de clientes con la compañia de transporte que gestiona la entrega de sus pedidos mediante LINQ
  223.  
  224. // Utiliza un JOIN de LINQ donde suppliers.Country es igual customers.Country
  225.  
  226. // Muestra los siguientes campos suppliers.Country, suppliers.SupplierName, customers.CompanyName
  227.  
  228. // Tablas: Customers y Suppliers
  229.  
  230. public static void Query10()
  231.  
  232. {
  233. var resultado = db.Suppliers
  234. .Join(db.Customers,
  235. s => s.Country,
  236. c => c.Country,
  237. (s, c) => new { s.Country, SupplierName = s.CompanyName, c.CompanyName })
  238. .ToList();
  239.  
  240.  
  241. foreach (var item in resultado)
  242. {
  243. Console.WriteLine($"Cliente: {item.CompanyName}, Compañía de transpote: {item.SupplierName}");
  244. }
  245. }
  246.  
  247. }
  248.  
  249. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement