У меня есть следующие объекты:
public class Agency
{
public int ID;
public IEnumerable<BusinessUnit> BusinessUnits;
}
public class BusinessUnit
{
public int ID;
public decimal AmountSpent;
public IEnumerable<Client> Clients;
}
public class Client
{
public int ID;
public decimal AmountSpent;
}
Теперь у меня есть IEnumerable <Agency
>, который содержит несколько агентств, эти агентства содержат несколько BusinessUnits, и эти BusinessUnits содержат несколько клиентов.
Это может выглядеть примерно так:
Агентства1
++ BusinessUnit1 - $ 20
++++ Client1 - $ 10
++++ Client2 - $ 10
Agency2
++ BusinessUnit2 - $ 20
++++ Client1 - $ 20
Agency3
++ BusinessUnit1 - $ 10
++++ Client5 - $ 5
++++ Client6 - $ 5
++ BusinessUnit2 - $ 25
++++ Client1 - $ 25
Теперь я собираюсь создать список BusinessUnits и Clients, но для всех агентств, без дубликатов.
Итак, я хочу превратить этот список агентств в:
Все агентства
++ BusinessUnit1 - $ 30
++++ Client1 - $ 10
++++ Client2 - $ 10
++++ Client5 - $ 5
++++ Client6 - $ 5
++ BusinessUnit2 - $ 45
++++ Client1 - $ 20
++++ Client1 - $ 25
Где у меня просто есть список уникальных BusinessUnit (с их правильной суммой AmountSpent для всех экземпляров этого конкретного BusinessUnit) и со списком уникальных клиентов под ними, с правильной суммой AmountSpent для каждого экземпляра этого конкретного клиента в это бизнес-единица.
Возможно ли с LINQ, что я могу запросить мой список агентств IEnumerable <Agency
>, чтобы вернуть мой отдельный список комбинаций BusinessUnit / Client с правильными суммами?