我需要帮助找到最有效的方式来合并两个内存集合与LINQ到对象。在我的情况下,它不是简单的连接或concat,因为某些项目需要根据属性值排除。有条件地合并两个集合与LINQ到对象
让我们用下面的例子(不是很现实,但它说明了什么,我需要):
public abstract class Person
{
public String Name { get; set; }
}
public class Employee : Person
{
public DateTime? TerminationDate { get; set; }
}
public class Customer : Person
{
...
}
注意,员工也可以是客户。
我公司员工的名单和客户的列表,并希望生成以下规则的所有人员的名单:
- 中未出现员工
- 所有员工是不是也所有客户客户并没有终止(TerminationDate == NULL)
- 所有的人是客户和员工,而不是终止(TerminationDate == NULL)
瓦以最有效的方式来完成这一点?
一位顾客不能是雇员,无论如何,因为它们是不同的类。你的意思是“排除任何**与雇员同名**的顾客”吗? – 2012-02-02 15:59:41
由于人员显然可以既是员工又是客户,同时继承可能不是建模对象最合适的方式。在这种情况下,我希望组合优于继承。 – 2012-02-02 15:59:49
是的,当我说雇员也可能是客户时,我的意思是在现实世界中而不是客体。对困惑感到抱歉。 – SonOfPirate 2012-02-02 16:52:00