title: Efficiently merge string arrays in .NET, keeping distinct values
body: <p>I'm using .NET 3.5.  I have two string arrays, which may share one or more values:</p>
  
  <pre><code>string[] list1 = new string[] { "apple", "orange", "banana" };
  string[] list2 = new string[] { "banana", "pear", "grape" };
  </code></pre>
  
  <p>I'd like a way to merge them into one array with no duplicate values:</p>
  
  <pre><code>{ "apple", "orange", "banana", "pear", "grape" }
  </code></pre>
  
  <p>I can do this with LINQ:</p>
  
  <pre><code>string[] result = list1.Concat(list2).Distinct().ToArray();
  </code></pre>
  
  <p>but I imagine that's not very efficient for large arrays.</p>
  
  <p>Is there a better way?</p>