title: Foreach loops (with included LINQ) performance increase
body: <p>I wish to streamline the following code containing foreach loops to minimize iterations and/or increase performance because of LINQ and collections being created on each iteration:</p>
  
  <pre><code>foreach (Contact contact in Contacts) // phone contacts, around 500-1000
  {
      IEnumerable&lt;ContactEmailAddress&gt; emails = contact.EmailAddresses; // each has multiple emails
  
      foreach (Friend parseUser in parseUsers) // could be many thousands
      {
          if (emails.Where(e =&gt; e.EmailAddress == parseUser.Email).ToList().Count &gt; 0)
          {                        
              parseUser.AddContact(contact); // function call
  
              verifiedUsers.Add(parseUser); // add to my new aggregated list
          }
      }
  }
  </code></pre>
  
  <p>Thanks.</p>