Moyen efficace pour supprimer les doublons de chaînes à partir d'un tableau de chaînes en C#

Je voudrais savoir une méthode efficace pour supprimer les doublons d'un tableau de chaînes en C#.

Par exemple,

string[] a = { "abc", "xyz","abc", "def", "ghi", "asdf", "ghi","xd", "abc" };

deviendra,

string[] a = { "abc", "xyz","def", "ghi", "asdf", "xd" };

Comment combler les lacunes après avoir retiré les doublons?
Est-il un moyen de le faire sans l'aide d'un supplément de tableau pour stocker les éléments?

Méthode que j'ai utilisé:

1) Sorted the array

2) Replaced the duplicate entries with null

3) Copied NOT null string to a new array.

Mais à la recherche d'une optimisation du chemin à faire de même.

EDIT: je suis à l'aide .NET 2.0 et VS 2005

OriginalL'auteur SyncMaster | 2011-04-11