Efficacement fusionner les tableaux de chaîne dans .NET, en gardant les valeurs distinctes

Je suis en utilisant .NET 3.5. J'ai deux tableaux de chaîne, qui peuvent partager une ou plusieurs valeurs:

string[] list1 = new string[] { "apple", "orange", "banana" };
string[] list2 = new string[] { "banana", "pear", "grape" };

Je voudrais un moyen de les fusionner en un seul tableau avec pas de doublons:

{ "apple", "orange", "banana", "pear", "grape" }

Je peux le faire avec LINQ:

string[] result = list1.Concat(list2).Distinct().ToArray();

mais j'imagine que ce n'est pas très efficace pour les grandes baies.

Est-il un meilleur moyen?