Mostrando las entradas con la etiqueta Left Join usando expresiones lambda. Mostrar todas las entradas
Mostrando las entradas con la etiqueta Left Join usando expresiones lambda. Mostrar todas las entradas

martes, 10 de noviembre de 2015

Left Join usando expresiones lambda

A continuación voy a mostrarles como realizar un left join entre 2 listas de objetos (A y B) utilizando expresiones lambda.

Caso 1
Si lo que se quiere es obtener una lista con objetos de A que no se encuentren en B, se debe copiar lo siguiente:


 
Dim lista = listaA.SelectMany(Function(a) listaB.Where(Function(b) b.Codigo = a.Codigo).DefaultIfEmpty().Where(Function(w) IsNothing(w)), Function(a, b) New ObjetoBE With {.Codigo = a.Codigo, .Descripcion = a.Descripcion}).ToList()

Caso 2
Si lo que se quiere es obtener la lista de objetos A, pero diferenciando a los objetos que también están en la lista B. Se debe copiar lo siguiente: 

 
Dim lista = listaA.SelectMany(Function(a) listaB.Where(Function(b) b.Codigo = a.Codigo).DefaultIfEmpty() , Function(a, b) New ObjetoBE With { .Codigo = a.Codigo, .Indicador = If(IsNothing(b),0,1) }).ToList()

Saludos.