独自のデータで満たされた 2 つのリストがあります。と の 2 つのモデルがあるHuman
としAnotherHuman
ます。各モデルには異なるフィールドが含まれていますが、 のようないくつかの共通フィールドがありLastName, FirstName, Birthday, PersonalID
ます。
List<Human> humans = _unitOfWork.GetHumans();
List<AnotherHuman> anotherHumans = _unitofWork.GetAnotherHumans();
anotherHumans
list 内の任意の項目の対応するフィールドとLastName, FirstName, Birthday
すべて等しい項目を list から除外したいと思いますhumans
。
ただし、 list 内のいずれかの項目とanotherHumans
list内のPersonalID
項目humans
が同じである場合は、 this のみで、そうでない場合はPersonalID
で比較すれば十分です。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
ますか (null 可能です)。AnotherHuman の新しいインスタンスと重複のリストを作成して LINQ のみを使用する方法はありますか?
前もって感謝します!