J'ai travaillé sur un projet dans lequel je devais parcourir une collection de données et supprimer des entrées où la "clé primaire" est dupliquée. Je l'ai essayé d'utiliser unPerformances lors de la recherche de doublons
List<int>
et
Dictionary<int, bool>
Avec le dictionnaire, j'ai trouvé une performance légèrement meilleure, même si je ne dois booléen marqué avec chaque entrée. Mon attente est que c'est parce qu'une liste permet l'accès indexé et non un dictionnaire. Ce que je me demandais, c'est s'il existe une meilleure solution à ce problème. Je n'ai plus besoin d'accéder aux entrées, je n'ai besoin que de suivre les "clés primaires" que j'ai vues et de m'assurer que je ne fais que du travail supplémentaire sur les entrées qui ont une nouvelle clé primaire. J'utilise C# et .NET 2.0. Et je n'ai aucun contrôle sur la fixation des données d'entrée pour supprimer les doublons de la source (malheureusement!). Et donc vous pouvez avoir une idée de la mise à l'échelle, dans l'ensemble, je vérifie les doublons environ 1 000 000 fois dans l'application, mais dans des sous-ensembles de pas plus de 64 000 qui doivent être uniques.
Un HashSet est exactement ce que je veux, malheureusement, nous sommes limités à .net 2.0, cependant, en utilisant le lien @Rob pour faire fonctionner Linq dans .net 2.0, j'essaye de faire fonctionner le HashSet dans notre environnement. –