Utilizzare il metodo ExceptBy per eseguire operazione di sottrazione tra liste

di Stefano Mostarda, in LINQ,

Nello script #664 abbiamo introdotto il metodo IntersectBy che permette di trovare gli oggetti appartenenti a due liste specificando una lambda che effettua la comparazione tra oggetti. In questo script introduciamo il metodo ExceptBy che fa l'esatto opposto: cerca gli oggetti che sono in una lista, ma non sono nell'altra sempre permettendo di specificare in base a quali campi eseguire la comparazione tra oggetti.

Vediamo un esempio di questo metodo in azione.

var l1 = new List<Person>
{
    new Person { Id = 1, Name = "Stefano Mostarda" },
    new Person { Id = 2, Name = "Daniele Bochicchio" },
    new Person { Id = 3, Name = "Cristian Civera" },
};

var l2 = new List<Person>
{
    new Person { Id = 1, Name = "Stefano Mostarda" },
    new Person { Id = 4, Name = "Marco De Sanctis" },
};

var l3 = l1.ExceptBy(l2, p => p.Id);

In questo esempio viene presa la lista l1 e ne viene fatto il paragone con la la lista l2 al fine di ottenere la lista l3 in cui sono presenti solo gli oggetti di l1 non presenti in l2. In questo caso, la lista l3 conterrà gli oggetti con id 2 e 3 della lista l1.

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

I più letti di oggi