Groupe par dans LINQ

Supposons que si nous avons une classe comme

class Person { 
    internal int PersonID; 
    internal string car  ; 
}

Maintenant, j'ai une liste de cette classe: List<Person> persons;

Maintenant cette liste peut avoir plusieurs instances du même PersonIDs, par exemple:

persons[0] = new Person { PersonID = 1, car = "Ferrari" }; 
persons[1] = new Person { PersonID = 1, car = "BMW"     }; 
persons[2] = new Person { PersonID = 2, car = "Audi"    }; 

Est-il une manière que je peux groupe par personID et obtenir la liste de toutes les voitures qu'il a?

Par exemple, le résultat attendu serait

class Result { 
   int PersonID;
   List<string> cars; 
}

Donc après regroupement, je voudrais obtenir:

results[0].PersonID = 1; 
List<string> cars = results[0].cars; 

result[1].PersonID = 2; 
List<string> cars = result[1].cars;

De ce que j'ai fait jusqu'à présent:

var results = from p in persons
              group p by p.PersonID into g
              select new { PersonID = g.Key, //this is where I am not sure what to do

Quelqu'un pourrait-il svp me pointer dans la bonne direction?

  • dans l'esprit de pedanticism, une adresse est à peu près autant d'une propriété intrinsèque de la personne de leur voiture. aussi, on ne serait sans doute de stocker leur date de naissance plutôt que de l'âge.
  • Il est un autre exemple dont Count et Sum ici stackoverflow.com/questions/3414080/...
  • Källman: je suis d'accord avec Chris Walsh. Les plus susceptibles d'une application qui a l'O. P. "Personne(s)" de la Classe (Table) auraient déjà un ""normal "" "Personne(s)" de la Classe (Tableau) qui a l'usu. Propriétés / Colonnes (nom, sexe, date de naissance). L'O. P. "Personne(s)" de la Classe (Table) serait pro être un Enfant de la Classe (Tableau) de la ""normal "" "Personne(s)" de la Classe ( Tableau) (c'est à dire un "OrderItem(s)" de la Classe (Tableau) par rapport à une "Commande(s)" de la Classe (Tableau)). L'O. P. a probablement pas utiliser le nom qu'il avait utiliser si elle était dans le même Champ d'application que son ""normal "" "Personne(s)" de la Classe (Tableau) et/ou peuvent l'ai simplifié pour ce post.
InformationsquelleAutor test123 | 2011-09-06