domingo, 25 de septiembre de 2022

LINQ INNER JOIN


LINQ INNER JOIN

1. Dadas las siguientes 2 listas de objetos, Crear la clase Empleado con las siguientes propiedades:
    IdEmpleado, Nombre y el IdModalidad
    Crear la clase Modalidad Contrato con las siguientes propiedades:
    IdModalidad y el NombreModalidad.
             List<Empleado> listaEmpleado = new List<Empleado>
            {
                new Empleado {IdEmpleado=1, Nombre="Pedro",IdModalidad=1},
                new Empleado {IdEmpleado=2, Nombre="Jorge",IdModalidad=2},
                new Empleado {IdEmpleado=3, Nombre="Luis",IdModalidad=1},
                new Empleado {IdEmpleado=4, Nombre="Julio",IdModalidad=3},
            };

            List<ModalidadContrato> listaModalidad = new List<ModalidadContrato>
            {
                new ModalidadContrato {IdModalidad=1, NombreModalidad="CAS"},
                new ModalidadContrato {IdModalidad=2, NombreModalidad="TEMPORAL"},
                new ModalidadContrato {IdModalidad=3, NombreModalidad="INDEFINIDO"}
            };

Mediante una consulta linq Imprimir el siguiente resultado:
El empleado ____(nombre empleado) es ____(nombre modalidad). 

Solución:

            var consulta = from m in listaModalidad
                                      join e in listaEmpleado on m.IdModalidad equals e.IdModalidad
                                      orderby e.IdEmpleado
                                      select new
                                      {
                                          NombreEmpleado = e.Nombre,
                                          NombreModalidad = m.NombreModalidad
                                       };

            foreach (var c in consulta)
                Console.WriteLine("El empleado " + c.NombreEmpleado + " es " + c.NombreModalidad);

2.  Dadas las siguientes 3 listas de objetos, Crear la clase Categoria con las siguientes propiedades:
     IdCategoria, NombreCategoria.
     Crear la clase Proveedor con las siguientes propiedades:
     IdProveedor, Nombre.
     Crear la clase Producto con las siguientes propiedades:
     IdProducto, Nombre, IdCategoria y el IdProveedor.

             List<Categoria> listaCategoria = new List<Categoria>
            {
                new Categoria{IdCategoria=1 , NombreCategoria="Fruta"},
                new Categoria {IdCategoria=2 ,NombreCategoria="Verdura"}
            };
            List<Proveedor> listaProveedor = new List<Proveedor>
            {
                new Proveedor{IdProveedor=1 , Nombre="ABC"},
                new Proveedor {IdProveedor=2 , Nombre="XYZ"}
            };
            List<Producto> listaProducto = new List<Producto>
            {
                new Producto{IdProducto=1 , Nombre="Fresa" , IdCategoria=1 , IdProveedor=2},
                new Producto {IdProducto=2 , Nombre="Tomate" , IdCategoria=1 , IdProveedor=2}
            };

Mediante una consulta linq Imprimir el siguiente resultado:
El producto es ____(nombre producto) su categoria es ____(nombre categoria) y su proveedor es ____(nombre proveedor). 

Solucion:

         var consulta = from cat in listaCategoria
                                  join prod in listaProducto on cat.IdCategoria equals prod.IdCategoria
                                  join prov in listaProveedor on prod.IdProveedor equals prov.IdProveedor
                                 select new
                                 {
                                    NombreProducto = prod.Nombre,
                                    NombreCategoria = cat.NombreCategoria,
                                    NombreProveedor = prov.Nombre
                                 };

            foreach (var c in consulta)
                Console.WriteLine("El producto es " + c.NombreProducto + " su categoria es " + c.NombreCategoria + " su proveedor es " + c.NombreProveedor);

3. Dadas las siguientes 3 listas de objetos, Crear la clase Empleado con las siguientes propiedades:
    IdEmpleado, Nombre, IdModalidad y el IdSexo
    Crear la clase Modalidad Contrato con las siguientes propiedades:
    IdModalidad y el NombreModalidad.
    Crear la clase Sexo con las siguientes propiedades:
    IdSexo y el NombreSexo.

            List<Sexo> listaSexo = new List<Sexo>
            {
                new Sexo {IdSexo=1, NombreSexo="Masculino"},
                new Sexo {IdSexo=2, NombreSexo="Femenino"}
            };

            List<Empleado> listaEmpleado = new List<Empleado>
            {    
                new Empleado {IdEmpleado=1, Nombre="Pedro",IdModalidad=1, IdSexo=1},
                new Empleado {IdEmpleado=2, Nombre="Maria",IdModalidad=2, IdSexo=2},
                new Empleado {IdEmpleado=3, Nombre="Luis",IdModalidad=1, IdSexo=1},
                new Empleado {IdEmpleado=4, Nombre="Andrea",IdModalidad=3, IdSexo=2},
            };

            List<ModalidadContrato> listaModalidad = new List<ModalidadContrato>
            {
            new ModalidadContrato {IdModalidad=1, NombreModalidad="CAS"},
            new ModalidadContrato {IdModalidad=2, NombreModalidad="TEMPORAL"},
            new ModalidadContrato {IdModalidad=3, NombreModalidad="INDEFINIDO"}
            };

Mediante una consulta linq Imprimir el siguiente resultado:
Mostrar el nombre del empleado, el sexo y el nombre de la modalidad.

Solución:

    var consulta = from s in listaSexo
                             join e in listaEmpleado on s.IdSexo equals e.IdSexo
                             join m in listaModalidad on e.IdModalidad equals m.IdModalidad
                             select new
                             {
                                NombreEmpleado = e.Nombre,
                                SexoEmpleado = s.NombreSexo,
                                NombreModalidad = m.NombreModalidad
                             };

            foreach (var c in consulta)
                Console.WriteLine(c.NombreEmpleado + " " + c.SexoEmpleado + " " + c.NombreModalidad);

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...