114 votes

Obtenir la liste des propriétés d'une liste d'objets

Actuellement, j'utilise foreach pour retourner une liste de object propriétés.

 class X
 {
     List<X> Z = GetXlist();
     List<String> r = new List<String>();

     foreach (var z in Z)
     {
         r.Add(z.A);
     }

     return r;
}

Existe-t-il un moyen de raccourcir ce processus afin de ne pas avoir à écrire le foreach boucle ?

236voto

Honza Brestan Points 3316

LINQ est la réponse. Vous pouvez l'utiliser pour "projeter" de votre collection d'objets vers une autre collection - dans ce cas, une collection de valeurs de propriétés d'objets.

List<string> properties = objectList.Select(o => o.StringProperty).ToList();

15voto

rae1 Points 4603

Vous pourriez utiliser LINQ :

List<X> Z = GetXlist();

List<String> r = Z.Select(z => z.A).ToList();

return r;

Ou juste,

return GetXlist().Select(z => z.A).ToList();

Pour en savoir plus sur LINQ . Il est joli utile.

-1voto

Anshuman Points 1
List<string> properties = objectList.Select(o => o.StringProperty).ToList();

Vous pouvez aussi le faire en privé OverLoading et l'utiliser dans LINQ Query.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X