У меня есть следующие объекты:Как я могу получить отдельные элементы следующей структуры данных в C#/LINQ?
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 - $ 10Agency2
+ + BusinessUnit2 - $ 20
++++ Client1 - $ 20Агентство 3
++ BusinessUnit1 - $ 10
++++ Client5 - $ 5
++++ Client6 - $ 5
++ BusinessUnit2 - $ 25
++++ Client1 - $ 25
Теперь, что я хочу сделать, это создать список BusinessUnits и клиентов, но для всех агентств, без дубликатов.
Итак, я ищу, чтобы превратить этот список агентств в:
Все агентства
++ BusinessUnit1 - $ 30
++++ Client1 - $ 10
++++ Client2 - $ 10
++++ Client5 - $ 5
++++ Client6 - $ 5++ BusinessUnit2 - $ 45
++++ Client1 - $ 20
++++ Client1 - $ 25
Где я просто список уникальных BusinessUnits (с правильной их общей AmountSpent во всех случаях этого конкретного BusinessUnit), а также со списком уникальных клиентов под ними, с точная сумма TotalSpent для каждого экземпляра этого конкретного клиента в рамках этой бизнес-единицы.
Возможно ли с LINQ, что я могу запросить мой список IEnumerable <Agency
> Список агентов, чтобы возвращать мой отличный список комбинаций BusinessUnit/Client с правильными суммами?
@Alan, правильный. Агентство.BusinessUnits имеет только один из каждого BusinessUnitID – KingNestor
@Alan, однако у вас может быть Client1 в двух разных местах среди 2 разных BusinessUnits. – KingNestor