Suppongo che ci sia una semplice query LINQ per fare questo, non sono esattamente sicuro di come. Si prega di vedere lo snippet di codice qui sotto.Usa LINQ per ottenere elementi in un elenco <>, che non sono in un altro elenco <>
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; }
}
Vorrei eseguire una query LINQ per darmi tutte le persone in peopleList2
che non sono in peopleList1
questo esempio dovrebbe darmi due persone (ID = 4 & ID = 5)
Forse è una buona idea di rendere ID di sola lettura in quanto l'identità di un oggetto non dovrebbe cambiare nel suo tempo di vita. A meno che, naturalmente, il tuo testing o la struttura ORM non richieda che sia mutabile. – CodesInChaos
Possiamo chiamare questo "unire escluso a sinistra (o destro)" in base a [questo diagramma?] (Https://www.codeproject.com/Articles/33052/Visual-Representation-of-SQL-Joins) –