我有以下对象:
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
>,其中包含多个机构,这些机构包含多个业务单元,而这些业务单元包含多个客户。
它可能看起来像:
Agency1
++BusinessUnit1 - $20
++++Client1 - $10
++++Client2 - $10Agency2
++BusinessUnit2 - $20
++++Client1 - $20Agency3
++BusinessUnit1 - $10
++++Client5 - $5
++++Client6 - $5
++BusinessUnit2 - $25
++++Client1 - $25
现在,我要做的是创建一个业务单位和客户列表,但对于所有机构,没有重复。
因此,我希望将该机构列表变为:
所有机构
++BusinessUnit1 - $30
++++Client1 - $10
++++Client2 - $10
++++Client5 - $5
++++Client6 - $5++BusinessUnit2 - $45
++++Client1 - $20
++++Client1 - $25
我只是有一个唯一业务单位列表(在该特定业务单位的所有实例中具有正确的 AmountSpent 总数),并在其下列出唯一客户,在该业务单位下该特定客户的每个实例具有正确的 AmountSpent 总数.
使用 LINQ 是否可以查询我的 IEnumerable <Agency
> Agencies 列表以返回具有正确总和的 BusinessUnit/Client 组合的不同列表?