Estoy tratando de usar Linq para devolver una lista de identificadores dada una lista de objetos donde el ID es una propiedad. Me gustaría poder hacer esto sin recorrer cada objeto y extraer los identificadores únicos que encuentro.
Tengo una lista de objetos de tipo MyClass y una de las propiedades de esta clase es una ID.
public class MyClass
{
public int ID { get; set; }
}
Lo que quiero hacer es escribir una consulta de Linq para devolverme una lista de esos Ids
¿Cómo hago eso dado un IList<MyClass>
tal que devuelve uno IEnumerable<int>
de los identificadores?
Estoy seguro de que debe ser posible hacerlo en una o dos líneas usando Linq en lugar de recorrer cada elemento en la lista MyClass y agregar los valores únicos en una lista.
¡Cualquier ayuda para crear una solución elegante sería muy apreciada!
DistinctBy
en cuenta que tiene en MoreLinq que le dará distintosMyClass
s basados enID
. Uso:var distincts = list.DistinctBy(x => x.ID);
Respuestas:
fuente
Use el operador distinto :
fuente
Usando Linq recto , con la
Distinct()
extensión:fuente
SALIDA
1234567890
fuente
Al tomar Distinct, también tenemos que usar IEnumerable. Si la lista es modelo significa, necesita escribir código como este
fuente