Estou tentando usar o Linq para retornar uma lista de ids, dada uma lista de objetos em que o id é uma propriedade. Eu gostaria de poder fazer isso sem percorrer cada objeto e retirar os IDs únicos que encontro.
Eu tenho uma lista de objetos do tipo MyClass e uma das propriedades dessa classe é um ID.
public class MyClass
{
public int ID { get; set; }
}
O que eu quero fazer é escrever uma consulta Linq para retornar uma lista desses IDs
Como faço isso dado IList<MyClass>
que retorna um IEnumerable<int>
dos IDs?
Tenho certeza de que deve ser possível fazê-lo em uma ou duas linhas usando o Linq, em vez de percorrer cada item da lista MyClass e adicionar os valores exclusivos a uma lista.
Qualquer ajuda na criação de uma solução elegante seria muito apreciada!
DistinctBy
em MoreLINQ que lhe dará distintosMyClass
s baseado emID
. Uso:var distincts = list.DistinctBy(x => x.ID);
Respostas:
fonte
Use o operador Distinct :
fonte
Usando Linq direto , com a
Distinct()
extensão:fonte
RESULTADO
1234567890
fonte
Ao usar o Distinct, também temos que converter o IEnumerable. Se a lista for modelo significa, é necessário escrever um código como este
fonte