以下のような単純なアドレスクラスがあるとします。
public class Address
{
public int AddressId { get; set; }
public List<int> NodeIds { get; set; }
}
以下のようなアドレスのリストを入力しました。
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}}
}
そして、AddressIdsでグループ化して、結果リストに、以下のような重複の場合に基本的にロールアップされるNodeIdsが含まれるようにします。
listOfAddressesWithoutDupes =
AddressId=1, NodeIds=List<int>{1,4,5},
AddressId=2, NodeIds=List<int>{2}},
AddressId=3, NodeIds=new List<int>{3}
だから基本的に私は上記の結果を得るgroupby関数(または何か他のもの)を見ています
List<Address> listOfFilteredAddresses = listOfAddresses.GroupBy(x=>x.AddressId).Select(y=>new Address{AddressId=y.Key, NodeIds=?});
前もって感謝します..