Założę się, że istnieje proste zapytanie LINQ, aby to zrobić, po prostu nie jestem do końca pewien, w jaki sposób. Zobacz poniższy fragment kodu.Użyj LINQ, aby pobrać elementy z jednej listy <>, które nie znajdują się na innej liście <>
class Program
{
static void Main(string[] args)
{
List<Person> peopleList1 = new List<Person>();
peopleList1.Add(new Person() { ID = 1 });
peopleList1.Add(new Person() { ID = 2 });
peopleList1.Add(new Person() { ID = 3 });
List<Person> peopleList2 = new List<Person>();
peopleList2.Add(new Person() { ID = 1 });
peopleList2.Add(new Person() { ID = 2 });
peopleList2.Add(new Person() { ID = 3 });
peopleList2.Add(new Person() { ID = 4 });
peopleList2.Add(new Person() { ID = 5 });
}
}
class Person
{
public int ID { get; set; }
}
chciałbym wykonać kwerendy LINQ, aby dać mi wszystkich ludzi w peopleList2
, które nie są w peopleList1
ten przykład powinien dać mi dwie osoby (ID = 4 & ID = 5)
Być może jest to dobry pomysł na stworzenie ID tylko do odczytu, ponieważ tożsamość obiektu nie powinna się zmieniać w czasie jego działania. O ile oczywiście struktura testowania lub ORM nie wymaga modyfikacji. – CodesInChaos
Czy możemy to nazwać "lewą (lub prawą) wykluczającą dołączenie" zgodnie z [tym schematem?] (Https://www.codeproject.com/Articles/33052/Visual-Representation-of-SQL-Joins) –