J'essaie d'utiliser Linq pour renvoyer une liste d'identifiants à partir d'une liste d'objets dont l'identifiant est une propriété. J'aimerais pouvoir le faire sans avoir à parcourir en boucle 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 identifiant.
public class MyClass
{
public int ID { get; set; }
}
Ce que je veux faire, c'est écrire une requête Linq pour me retourner une liste de ces identifiants.
Comment puis-je faire cela étant donné un IList<MyClass>
tel qu'il retourne un IEnumerable<int>
des identifiants?
Je suis sûr qu'il doit être possible de le faire sur une ou deux lignes à l'aide de Linq plutôt que de parcourir en boucle chaque élément de la liste MyClass et d'ajouter les valeurs uniques à une liste.
Toute aide à la création d’une solution élégante serait très appréciée!
IEnumerable<int> ids = list.Select(x=>x.ID).Distinct();
Utilisez le opérateur distinct :
var idList = yourList.Select(x=> x.ID).Distinct();
Utilisation de straight Linq, avec l'extension Distinct()
:
var idList = (from x in yourList select 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);
}
SORTIE
1234567890