title: Return an item that differs from related items based on a property using LINQ
body: <p>So I have a list of objects, let's call them Elephants.</p>
  
  <p>Each elephant object has a property called ClonedFrom. This is of type Elephant and is used to point back at the object that this new object was created in the image of.</p>
  
  <p>The Elephant class also has an other property called HasTrunk which is of type <code>bool</code>.</p>
  
  <p>So:</p>
  
  <pre><code>public class Elephant
  {
        public Elephant ClonedFrom { get; set; }
        public  bool     HasTrunk { get; set; }
  }
  </code></pre>
  
  <p>and we have </p>
  
  <pre><code>   List&lt;Elephant&gt; herd
  </code></pre>
  
  <p>I'd like to have a LINQ query that would return any Elephants that have a false HasTrunk property but also have a ClonedFrom property equal to another Elephant in the same list whose HasTrunk property is set to true.</p>
  
  <p>So for example Elephant A is cloned to create the new elephants B and C</p>
  
  <p>B and C both exist in the herd List. B has HasTrunk set to false whereas C has hasTrunk set to true.</p>
  
  <p>I'd like a query that returns B.</p>