2010-07-31 3 views
2

Oui, question mal formulée, mais je ne savais vraiment pas comment l'exprimer. :)Comment récupérer un tableau de membres d'une classe à partir d'un tableau de cette classe?

Disons que j'ai une classe simple qui ressemble à ceci:

public class Contact 
{ 
    public string Name { get; set; } 
    public string PhoneNumber { get; set; } 
} 

et j'ai un List<> d'entre eux. Eh bien, je voudrais être en mesure d'obtenir une liste de tous les Name s, tout comme Dictionary<T,U> me permet de faire quelque chose comme Dictionary.Keys.ToArray() et Dictionary.Values.ToArray(). Actuellement, je fais la chose évidente, qui est de faire une boucle sur le tableau de Contact s et créer mon propre tableau. Je pourrais être naïf, mais je pensais juste qu'il y aurait un moyen de l'obtenir dans une ligne de code.

Répondre

5

En supposant que la liste est nommée contacts, voici une requête LINQ qui devrait vous donner un tableau de noms:

var names = (from c in contacts select c.Name).ToArray(); 

Note: il crée d'abord un IEnumerable<string> les convertit en un tableau.

+0

+1 BOOM. Linq gagne à nouveau – fletcher

+0

brillant. dois apprendre LINQ. :) – Dave

+0

Il devrait retourner un IEnumerable d'abord, pas Liste LLS

4

Vous pouvez utiliser LINQ:

Contact[] contacts = GetContacts(); 
string[] names = contacts.Select(c => c.Name).ToArray(); 
Questions connexes