我有以下對象:如何在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包含幾個客戶。
它看起來是這樣的:
Agency1
++ BusinessUnit1 - $ 20
++++客戶端1 - $ 10
++++客戶端2 - $ 10Agency2
+ + BusinessUnit2 - $ 20
++++ Client1 - $ 20Agency 3
++ BusinessUnit1 - $ 10
++++客戶機程序 - $ 5
++++ Client6 - $ 5
++ BusinessUnit2 - $ 25
++++客戶端1 - $ 25
現在,我期望做的是創建一個BusinessUnits和Clients的列表,但是對於所有機構而言,沒有重複。
所以,我希望把機構的該名單爲:
所有代理商
++ BusinessUnit1 - $ 30
++++客戶端1 - $ 10
++++客戶端2 - $ 10
++++客戶機程序 - $ 5
++++ Client6 - $ 5++ BusinessUnit2 - $ 45
++++客戶端1 - $ 20
++++客戶端1 - $ 25
如果我只是有獨特BusinessUnits的列表(與整個特定BusinessUnit的所有實例的正確AmountSpent總),並與他們在獨特的客戶列表,該業務單位下該特定客戶的每個實例的正確金額總額。
是否有可能與LINQ,我可以查詢我的IEnumerable <Agency
>機構列表返回正確的總和我清楚的BusinessUnit /客戶端組合列表?
@Alan,正確。 Agency.BusinessUnits只有每個BusinessUnitID – KingNestor 2009-06-29 22:40:34
@Alan中的一個,但是,您可能在兩個不同的BusinessUnits中的兩個不同位置中有Client1。 – KingNestor 2009-06-29 22:41:08