 <p>You can combine the <code>Where</code> and the <code>FirstOrDefault</code>, as <code>FirstOrDefault</code> allows you to specify a predicate. This will save you going through the entire list only to take the first, if it's there. Then you use the null coalescing operator <code>??</code>, which will only evaluate the right side if the left side is null:</p> <pre><code>WordForm wordForm = db.WordForms .FirstOrDefault(w =&gt; w.Definition == result.definition) ?? addWordForm(result, word); </code></pre>