.net - examples - Filtrar la lista de linq en el valor de la propiedad
linq to sql (6)
No probado, pero será algo como esto:
var matches = from o in objList
join i in intList on o.ID equals i
select o;
@Konrad acaba de probarlo, y funciona - Acabo de tener un error tipográfico donde escribí "i.ID" en lugar de "i".
Tengo una List<int>
y una List<customObject>
. La clase customObject tiene una propiedad de ID. ¿Cómo puedo obtener una List<customObject>
contenga solo los objetos donde la propiedad ID está en la List<int>
usando LINQ?
Editar : Acepté la respuesta de Konrad porque es más fácil / más intuitiva de leer.
Solo para completar (¿y quizás sea más fácil de leer?), Usando un "dónde" similar al "join" de Matt:
var matches = from o in customObjectList
from i in intList
where o.ID == i
select o;
He tenido un problema similar recientemente y he usado la solución a continuación. Si ya tiene la lista de objetos, puede eliminar todos los no encontrados en la lista int, dejando solo las coincidencias en objList.
objList.RemoveAll(x => !intList.Contains(x.id));
var result = from o in objList where intList.Contains(o.ID) select o
Tenga en cuenta que el uso de la unión en lugar de contiene NO funciona cuando el recuento de elementos en la lista excede 49! Obtendrá el error: Some part of your SQL statement is nested too deeply. Rewrite the query or break it up into smaller queries.
Some part of your SQL statement is nested too deeply. Rewrite the query or break it up into smaller queries.
using System.Linq;
objList.Where(x => intList.Contains(x.id));