title: How to find if an element of a list is in another list?
body: <p>I want to know if at least one element in a first list can be found in a second list.</p>
  
  <p>I can see two ways to do it. Let's say our lists are:</p>
  
  <pre><code>List&lt;string&gt; list1 = new[] { "A", "C", "F", "H", "I" };
  List&lt;string&gt; list2 = new[] { "B", "D", "F", "G", "I" };
  </code></pre>
  
  <p>The first approach uses a loop:</p>
  
  <pre><code>bool isFound = false;
  foreach (item1 in list1)
  {
      if (list2.Contains(item1))
      {
          isFound = true;
          break;
      }
  }
  </code></pre>
  
  <p>The second one uses Linq directly:</p>
  
  <pre><code>bool isFound = list1.Intersect(list2).Any();
  </code></pre>
  
  <p>The first one is long to write and not very straightforward/easy-to-read. The second one is short and clear, but performances will be low, especially on large lists.</p>
  
  <p>What may be an elegant way to do it?</p>