J'essaye d'utiliser Linq pour renvoyer une liste d'identifiants à partir d'une liste d'objets où l'identifiant est une propriété. J'aimerais pouvoir le faire sans parcourir chaque objet et extraire les identifiants uniques que je trouve.
J'ai une liste d'objets de type MyClass et l'une des propriétés de cette classe est un ID.
public class MyClass
{
public int ID { get; set; }
}
Ce que je veux faire, c'est écrire une requête Linq pour me renvoyer une liste de ces identifiants
Comment puis-je faire cela étant donné IList<MyClass>
que cela renvoie un IEnumerable<int>
des identifiants?
Je suis sûr qu'il doit être possible de le faire en une ou deux lignes en utilisant Linq plutôt que de parcourir chaque élément de la liste MyClass et d'ajouter les valeurs uniques dans une liste.
Toute aide pour créer une solution élégante serait très appréciée!
DistinctBy
dans MoreLinq qui vous donnera desMyClass
s distincts basés surID
. Utilisation:var distincts = list.DistinctBy(x => x.ID);
Réponses:
la source
Utilisez l' opérateur Distinct :
la source
En utilisant Linq droit , avec l'
Distinct()
extension:la source
PRODUCTION
1234567890
la source
Lorsque vous prenez Distinct, nous devons également lancer IEnumerable. Si la liste est un modèle, il faut écrire un code comme celui-ci
la source