viernes, 23 de septiembre de 2022

Ejercicios LINQ

Ejercicios LINQ

1. Se tiene un array de numeros:
      int[] numeros = {21,56,18,100,12};


Filtrar solo aquellos que son menores a 90

Solución:

int[] numeros = { 21, 56, 18, 100, 12 };

var consulta = from n in numeros
                        where n < 90
                        select n;

foreach (var numero in consulta)
{
Console.WriteLine(numero);
}


2. Se tiene un array de numeros:
       int[] numeros = {11,15,17,19,14,18};

Filtrar solo aquellos que son mayores a 12 pero menores a 17

Solución:

int[] numeros = { 11, 15, 17, 19, 14, 18 };

var consulta = from n in numeros
                       where n > 12 && n < 17
                       select n;

foreach (var numero in consulta)
{
Console.WriteLine(numero);
}

3. Dado el siguiente arreglo:
      string[] colors = { "green", "brown", "blue", "red" };

a) Obtener todos los elementos que contengan la letra "r".
c) Obtener la cantidad de elementos que empiezan con la letra "r"
b) Ordenar de forma descendente

Solución:

a)
string[] colors = { "green", "brown", "blue", "red" };

var consulta = from c in colors
                         where c.Contains("r")
                         select c;

foreach (var color in consulta)
{
Console.WriteLine(color);
}

b)
string[] colors = { "green", "brown", "blue", "red" };

            var consulta = from c in colors
                                     where c.StartsWith("r")
                                     select c;
            Console.WriteLine(consulta.Count());

c)
string[] colors = { "green", "brown", "blue", "red" };

var consulta = from c in colors
                       orderby c descending
                       select c;

foreach (var color in consulta)
{
Console.WriteLine(color);
}

4. Se tiene el siguiente array de números , 
        int[] numeros = { 17, 14, 24, 27, 30, 29 };

a) Mostrar aquellos que son menores a 28 y ordenarlos ascendentemente.
b) Dado el resultado de la pregunta anterior, Obtener el numero de elementos
c) Dado el resultado de la pregunta anterior, Obtener el valor maximo
d) Dado el resultado de la pregunta anterior, Obtener el promedio

Solución:
a)
            int[] numeros = { 17, 14, 24, 27, 30, 29 };

            var consulta = from n in numeros
                                     where n < 28
                                     orderby n
                                     select n;

            foreach (var numero in consulta)
            {
                Console.WriteLine(numero);
            }
b)   Console.WriteLine(consulta.Count());
c)    Console.WriteLine(consulta.Max());
d)    Console.WriteLine(consulta.Average());


5. Se tiene una lista de objetos de tipo Alumno, crear la clase Alumno con las siguientes propiedades: Nombre completo y Notas.
              List<Alumno> alumnos = new List<Alumno>
               {
                new Alumno{NombreCompleto="Felipe Melo", Notas=new List<int>{14,10,20,14,9} },
                new Alumno{NombreCompleto="Gerardo Martino", Notas=new List<int>{20,3,5,6,7}},
                new Alumno{NombreCompleto="Luis perez", Notas=new List<int>{14,10,20,14,9}},
                new Alumno{NombreCompleto="Javier Mendoza", Notas=new List<int>{11,6,1,8,13}},
               };

a) Obtener de la lista de alumnos el nombre completo y la primera nota.

Solución:
a)
            List<Alumno> alumnos = new List<Alumno>
            {
                new Alumno{NombreCompleto="Felipe Melo", Notas=new List<int>{14,10,20,14,9} },
                new Alumno{NombreCompleto="Gerardo Martino", Notas=new List<int>{20,3,5,6,7}},
                new Alumno{NombreCompleto="Luis perez", Notas=new List<int>{14,10,20,14,9}},
                new Alumno{NombreCompleto="Javier Mendoza", Notas=new List<int>{11,6,1,8,13}},
            };

            var consulta = from a in alumnos
                           select a.NombreCompleto + a.Notas[0];

            foreach (var alumno in consulta)
                Console.WriteLine(alumno);
        
6. Se tiene una lista lista de objetos de tipo Student, crear la clase Student con las siguientes propiedades: First, Last, id.
           List<Student> students = new List<Student>
            {
            new Student {First="Svetlana", Last="Ferguson", Id=111},
            new Student {First="Claire", Last="Stewart", Id=112},
            new Student {First="Sven", Last="Cameron", Id=113},
            new Student {First="Cesar", Last="Garcia", Id=114},
            new Student {First="Debra", Last="Hamilton", Id=115}
            };
a)  Crear una consulta LinQ e imprimir con el siguiente formato : Mi nombre es .... y mi apellido es ....... ,
   ordenar de forma ascendente por el campos last.

Solución:
a)
            List<Student> students = new List<Student>
            {
            new Student {First="Svetlana", Last="Ferguson", Id=111},
            new Student {First="Claire", Last="Stewart", Id=112},
            new Student {First="Sven", Last="Cameron", Id=113},
            new Student {First="Cesar", Last="Garcia", Id=114},
            new Student {First="Debra", Last="Hamilton", Id=115}
            };

            var consulta = from s in students
                           orderby s.Last ascending
                           select "Mi nombres es " + s.First + " Mi apellido es " + s.Last;

            foreach (var student in consulta)
                Console.WriteLine(student);

No hay comentarios:

Publicar un comentario

Instalación y Configuración de un DNS Público en Debian 12

Configuración de un DNS Público en Debian 12 ===================================== Registrar un dominio público en Goddady, Namecheap  ó pun...