Groupe par clé et envoyer des valeurs dans la liste à l'aide de LINQ
Dire que j'ai une simple classe d'adresse comme ci-dessous:
public class Address
{
public int AddressId { get; set; }
public List<int> NodeIds { get; set; }
}
et ont rempli une liste des adresses ci-dessous:
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}}
}
et je veux group by sur AddressIds donc la liste des résultats aura NodeIds qui sont essentiellement roulé en cas de doublon, comme ci-dessous:
listOfAddressesWithoutDupes =
AddressId=1, NodeIds=List<int>{1,4,5},
AddressId=2, NodeIds=List<int>{2}},
AddressId=3, NodeIds=new List<int>{3}
donc, fondamentalement, je suis en train de regarder un groupby fonction(ou autre chose) qui me ci-dessus
résultat
List<Address> listOfFilteredAddresses = listOfAddresses.GroupBy(x=>x.AddressId).Select(y=>new Address{AddressId=y.Key, NodeIds=?});
Merci d'avance..
OriginalL'auteur santosh212 | 2012-06-27
Vous devez vous connecter pour publier un commentaire.
Vous y êtes presque:
Cela suppose que
NodeIds
dans leAddress
sont uniques; si elles ne le sont pas, ajouterDistinct()
aprèsSelectMany
.OriginalL'auteur dasblinkenlight
Vous pouvez le faire par une autre approche comme ci-dessous
OriginalL'auteur jayanta
Il ya une meilleure façon:
OriginalL'auteur Master Pesho