1246 Stimmen

Gruppieren nach in LINQ

Nehmen wir an, wir haben eine Klasse wie:

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

Ich habe eine Liste mit dieser Klasse: List<Person> persons;

Und diese Liste kann mehrere Instanzen mit der gleichen PersonID s, zum Beispiel:

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

Gibt es eine Möglichkeit, eine Gruppe nach PersonID und die Liste aller Autos, die er besitzt, erhalten?

Das erwartete Ergebnis wäre zum Beispiel

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

Nach der Gruppierung würde ich also erhalten:

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

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

Nach dem, was ich bisher getan habe:

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

Könnte mir bitte jemand die richtige Richtung weisen?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X