title: How does FirstOrDefault evaluate an inner FirstOrDefault with a condition?
body: <p>I have this issue where FirstOrDefault always returns the first item it encounters regardless of how the inner expression evaluated.</p>
  
  <p>Lets say I have an array of companies.</p>
  
  <pre><code>Companies = {Company1, Company2, Company3}
  </code></pre>
  
  <p>.. and Each company contains an array of employee names.</p>
  
  <pre><code>Company1.EmployeeList = {"Employee1", "Employee2"}
  Company2.EmployeeList = {"Employee3", "Employee4"}
  Company3.EmployeeList = {"Employee5", "Employee6"}
  </code></pre>
  
  <p>Why do I always receive the first company with the following code?</p>
  
  <pre><code>var myCompany = Companies.FirstOrDefault(c=&gt; c.EmployeeList.FirstOrDefault(name =&gt; name == "Employee3") != null);
  </code></pre>