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:
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"}
};
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.
{
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