title: c# is it faster to concatenate lists and then filter or filter then concatenate
body: <p>Let's say, I have 3 lists (no more than 10 in my case).</p>
  
  <pre><code>List 1 has m elements
  List 2 has n elements
  List 3 has p elements
  </code></pre>
  
  <p>It's possible to have duplicates. I need to find the 10 first distinct elements that match a request (I know how to do it that's not the question).</p>
  
  <ol>
  <li>Is it faster to concatenate the 3 lists and then filter?</li>
  <li>Or is it faster to filter the 3 lists (3x10 elements) and then concatenate. And then filter again to have the last 10 elements I wanted.</li>
  </ol>
  
  <p>I would go for the second options but I am not 100% because I don't know the cost of a concatenation and the cost of filtering.</p>
  
  <p>Thanks for any inputs.</p>
  
  <p><strong>Edit:</strong>
  I can have up to 10 lists of 100-1000 elements => between 1000 elements to 10000 elements in the merged list.</p>
  
  <p>In my case, this request can be made 3 to 5 times per second per user (but just once in a while). The lists contains contacts and sometimes, the user searches a contact. I have an ajax request that sends each characters and refreshes a table.</p>