8
votes

Récupérer une gamme d'une propriété d'un tableau d'objets

Supposons la classe suivante:

class Person
{
   public string FirstName {get;set;}
   public string LastName {get;set;}
}


0 commentaires

3 Réponses :


20
votes

Bien sûr, très facilement: xxx

sauf si vous avez vraiment besoin le résultat pour être un tableau, je envisagerais d'utiliser Tolist () < / code> au lieu de toarray () et potentiellement juste la laissant comme un ienumerable (c.-à-d. juste appeler Sélectionnez ). Cela dépend de ce que vous allez faire avec les résultats.


0 commentaires

6
votes

Si vous avez un tableau , alors personnellement, j'utiliserais: xxx

ici; Cela évite quelques réaffectations et fonctionne sur plus de versions de .NET. De même: xxx

linq sera travail , mais n'est pas requis ici.


1 commentaires

+1 Pour démontrer, mais personnellement, j'utiliserais probablement toujours Linq - car il est sans doute plus idiomatique ces jours-ci et sera plus flexible face à des exigences changeantes ou à changer de type d'entrée. J'utiliserais array.convertipler dans le code sensible à la performance ou utiliser .NET 2.0 bien sûr.



1
votes

Essayez ceci:

List<Person> people = new List<Person>();
people.Add(new Person()
    {
        FirstName = "Brandon",
        LastName = "Zeider"
    });
people.Add(new Person()
{
    FirstName = "John",
    LastName = "Doe"
});

var firstNameArray = people.Select(p => p.FirstName).ToArray();


2 commentaires

Vous pouvez rendre votre code de configuration considérablement plus simple en utilisant les initialisateurs d'objet et de collecte :)


Vous êtes bien sûr raison JON (n'est-ce pas toujours haha). Si mon navigateur avait rafraîchi, j'aurais vu que vous et Marc avait déjà répondu et je n'aurais pas dérangé. :)