我有两个列表,里面填满了他们自己的数据。假设有两个模型Human
和AnotherHuman
。每个模型都包含不同的字段,但是它们有一些共同的字段,例如LastName, FirstName, Birthday, PersonalID
.
List<Human> humans = _unitOfWork.GetHumans();
List<AnotherHuman> anotherHumans = _unitofWork.GetAnotherHumans();
我想从 listanotherHumans
中排除LastName, FirstName, Birthday
所有等于 list 中任何项目的相应字段的项目humans
。
但是,如果列表中的任何项目与anotherHumans
列表中的PersonalID
项目humans
相同PersonalID
,则仅通过 this比较Human
就足够了,否则通过.AnotherHuman
PersonalID
LastName, FirstName and Birthday
我试图创建新的重复列表并将其排除在anotherHumans
:
List<AnotherHuman> duplicates = new List<AnotherHuman>();
foreach(Human human in humans)
{
AnotherHuman newAnotherHuman = new AnotherHuman();
newAnotherHuman.LastName = human.LastName;
newAnotherHuman.Name= human.Name;
newAnotherHuman.Birthday= human.Birthday;
duplicates.Add(human)
}
anotherHumans = anotherHumans.Except(duplicates).ToList();
PersonalID
但是,如果它存在(它可以为空),我如何从两个列表中进行比较。有什么方法可以摆脱创建 AnotherHuman 的新实例和重复项列表并仅使用 LINQ 吗?
提前致谢!