【发布时间】:2013-03-15 18:28:58
【问题描述】:
我的工作是使用 LINQ 聚合存在于 2 个不同数据库中的公司员工,标准是找到同名的公司,然后在这些公司中找到同名的部门,然后将所有员工合并到一个新的公司对象中。
我将两个数据库中的所有公司都放在一个List<Company> 中,他们是否可以使用Aggregate 功能合并同名公司,然后找到同名部门并合并所有员工?使用聚合函数似乎很容易合并“1级”数据,我正在努力进入3级聚合(公司>部门>员工)
我的List<Company> AllCompanies 对象示例:
Company Department Employees Source
-----------|--------------|-------------|---------
ABC Inc | Sales | Sam | DB1
| | Laura |
-----------|--------------|-------------|---------
ABC Inc | Sales | Joe | DB2
-----------|--------------|-------------|---------
ABC Inc | Sales | Joe | DB1
-----------|--------------|-------------|---------
ABC Inc | IT | Matt | DB2
-----------|--------------|-------------|---------
XYZ Inc | Sales | Steve | DB1
-----------|--------------|-------------|---------
XYZ Inc | Sales | Steve | DB2
-----------|--------------|-------------|---------
XYZ Inc | HR | Mark | DB2
我正在尝试将以上内容转换为:
Company Department Employees
-----------|--------------|-------------
ABC Inc | Sales | Sam
| | Laura
| | Joe
|--------------|-------------
| IT | Matt
-----------|--------------|-------------
XYZ Inc | Sales | Steve
|--------------|-------------
| HR | Mark
为了这个例子,我的匹配标准只是名字。
【问题讨论】:
-
你试过什么?
-
我试着画了上面的表格,很整洁,但除此之外我没有尝试任何东西,因为我不知道该怎么做,这就是我来这里寻求答案的原因首先,但感谢您尝试回答我的问题。
标签: c# linq lambda aggregate-functions