Выровняйте список адресов, проецируя каждое хранилище на свой список адресов, используйте SelectMany
для достижения выравнивания, а затем выберите только те, для которых тип адреса является физическим:
var addressesToModify =
storeList.SelectMany(store => store.AssetAddresses)
.Where(address => address.AddressType.Name == "PHYSICAL");
В синтаксисе запроса:
var addressesToModify =
from store in storeList
from address in store.AssetAddresses
where address.AddressType.Name == "PHYSICAL"
select address;
Обратите внимание, как это выглядит так, как мы описали. Из каждого store
в storeList
, из каждого address
в store.AssetAddresses
, где address
является физическим адресом, выберите address
.
Теперь повторяйте результаты запроса и изменяйте по мере необходимости.
Кроме того, я настоятельно рекомендую сделать перечисление
public enum AddressType { Physical, Alternative, Mailing }
и изменение Address.AddressType
на этот тип
public AddressType AddressType { get; }
и тогда вы можете написать
where address.AddressType == AddressType.Physical
или
.Where(address => address.AddressType == AddressType.Physical);