title: C# Linq Where(expression).FirstorDefault() vs .FirstOrDefault(expression)
body: <p>What is the difference between these two Linq queries:</p>
  
  <pre><code>var result = ResultLists().Where( c=&gt; c.code == "abc").FirstOrDefault();
  // vs.
  var result = ResultLists().FirstOrDefault( c =&gt; c.code == "abc");
  </code></pre>
  
  <ul>
  <li>Are the semantics exactly the same?</li>
  <li>Iff sematically equal, does the <a href="https://docs.microsoft.com/en-us/dotnet/api/system.linq.enumerable.firstordefault?view=netframework-4.8#System_Linq_Enumerable_FirstOrDefault__1_System_Collections_Generic_IEnumerable___0__System_Func___0_System_Boolean__" rel="noreferrer">predicate form of <code>FirstOrDefault</code></a> offer any theoretical or practical performance benefit over <code>Where()</code> plus plain <code>FirstOrDefault()</code>?</li>
  </ul>