Gruppe von Schlüssel und Werte senden in der Liste mit LINQ

Sagen, ich habe eine einfache address-Klasse wie folgt:

public class Address
{
    public int AddressId { get; set; }
    public List<int> NodeIds { get; set; }
}

und aufgefüllt haben eine Liste mit Adressen wie unter:

List<Address> listOfAddresses = new List<Address> 
{
    new Address {AddressId=1, NodeIds=new List<int>{1}},
    new Address {AddressId=2, NodeIds=new List<int>{2}},
    new Address {AddressId=3, NodeIds=new List<int>{3}},
    new Address {AddressId=1, NodeIds=new List<int>{4}},
    new Address {AddressId=1, NodeIds=new List<int>{5}}
}

und ich möchte die Gruppe auf AddressIds so wird die Ergebnisliste haben NodeIds, die im wesentlichen aufgerollt im Fall der Duplikate wie folgt:

listOfAddressesWithoutDupes = 
AddressId=1, NodeIds=List<int>{1,4,5},
AddressId=2, NodeIds=List<int>{2}},
AddressId=3, NodeIds=new List<int>{3}

also im Grunde, ich freue mich auf eine groupby-Funktion(oder etwas anderes) zu bekommen, die mich vor
Ergebnis

List<Address> listOfFilteredAddresses = listOfAddresses.GroupBy(x=>x.AddressId).Select(y=>new Address{AddressId=y.Key, NodeIds=?});

Vielen Dank im Voraus..

InformationsquelleAutor santosh212 | 2012-06-27

Schreibe einen Kommentar