several - linq group by lambda example
LINQ Lambda-Encuentra todas las identificaciones en una lista que no existen en otra lista (2)
Esto te dará los ID que están solo en list2:
var ids = list2.Select(x => x.Id).Except(list1.Select(x => x.Id));
Si sus objetos se comparan igual cuando tienen el mismo ID, entonces puede simplificarlo a:
var objects = list2.Except(list1);
Tengo dos colecciones de objetos (List list1 y List list2). Hay una propiedad en cada llamada "ID". Sé que list2 siempre tendrá más elementos que list1, solo necesito una forma fácil de obtener una colección de todos los elementos que existen en list2 pero no en list1 utilizando expresiones LINQ lambda.
Si solo necesita los ID de los artículos, entonces la respuesta de Marcos será muy útil. Si necesita devolver los artículos (y aún no cuentan con una implementación adecuada de Equals
), podría intentar algo como esto:
// assumes that the ID property is an int - change the generic type if it''s not
var ids = new HashSet<int>(list1.Select(x => x.ID));
var results = list2.Where(x => !ids.Contains(x.ID));