net - ¿Cómo uso Linq para obtener una lista única de propiedades de una lista de objetos?
distinct list object c# (4)
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 Id.
¿Cómo hago eso dado un IList<MyClass>
tal que devuelve un IEnumerable<int>
de los ids?
Estoy seguro de que debe ser posible hacerlo en una o dos líneas utilizando 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!
Usando Linq directo, con la extensión Distinct()
:
var idList = (from x in yourList select x.ID).Distinct();
Use el operador Distinct :
var idList = yourList.Select(x=> x.ID).Distinct();
int[] numbers = {1,2,3,4,5,3,6,4,7,8,9,1,0 };
var nonRepeats = (from n in numbers select n).Distinct();
foreach (var d in nonRepeats)
{
Response.Write(d);
}
SALIDA
1234567890
IEnumerable<int> ids = list.Select(x=>x.ID).Distinct();