LINQ to compare and excude/include different objects based on a similar type property
<p>Take the following code</p>

<p>(pseudocode in the linq part --> lstApples.Except(i => i.id = Banana.ID);)</p>

<pre><code>using System.Collections.Generic;
using System.Linq;

delegate int NumberChanger(int n);

namespace ConsoleApplication1
{

    class Program
    {
        static void Main(string[] args)
        {
            List&lt;Banana&gt; lstBananas = new List&lt;Banana&gt;()
            {
                new Banana {IDBanana = 1, Name = "Mike", Surname = "x" },
                new Banana {IDBanana = 2, Name = "Mauro", Surname = "y" },
                new Banana {IDBanana = 3, Name = "Ciccio", Surname = "z" },
                new Banana {IDBanana = 4, Name = "Enzo", Surname = "w" }
            };

            List&lt;Apple&gt; lstApples = new List&lt;Apple&gt;()
            {
                new Apple {IDApple = 1, Brand = "Melinda", Type = "Golden" },
                new Apple {IDApple = 1, Brand = "Melinda", Type = "Tirolese" },
                new Apple {IDApple = 1, Brand = "Melinda", Type = "d" },
                new Apple {IDApple = 1, Brand = "Melinda", Type = "f" },
                new Apple {IDApple = 1, Brand = "Secure", Type = "r" },
                new Apple {IDApple = 1, Brand = "Melinda", Type = "g" },
                new Apple {IDApple = 1, Brand = "AllOver", Type = "Tirolese" },
                new Apple {IDApple = 1, Brand = "Valtellina", Type = "Rossa" },
                new Apple {IDApple = 1, Brand = "ThisOne", Type = "Verde" },
                new Apple {IDApple = 1, Brand = "Melinda", Type = "Blu" },
            };

            lstApples.Except(i =&gt; i.id = Banana.ID);
        }
    }


    public class Banana
    {
        public int IDBanana { get; set; }
        public string Name { get; set; }
        public string Surname { get; set; }
    }

    public class Apple
    {
        public int IDApple { get; set; }
        public string Brand { get; set; }
        public string Type { get; set; }
    }
}
</code></pre>

<p>I need to filter out object on a list based on some other object property.</p>

<p>Example: When the apple id is the same as banana, cut out the apple from the list ** USING EXCEPT** mainly, or other ways if not possible</p>

<p>Linq make it cumbersome. How to do it?</p>