Je m'attendrais à ce que Enumerable.Distinct
soit à peu près aussi rapide que l'utilisation d'un dictionnaire si vous le faites une seule fois. Si vous voulez pouvoir ajouter/supprimer des valeurs et conserver la distinction, vous pouvez construire un HashSet<string>
(ce qui est essentiellement ce que je pense que Distinct fait sous le capot, mais Distinct()
retournera évidemment de nouvelles valeurs comme il les trouve, en maintenant pour
En fait, tout en utilisant:.
HashSet<string> distinctItems = new HashSet<string>(list);
sera une solution assez bonne (et simple) si vous ne me dérange pas l'ordre d'être foiré Il est plus simple que d'utiliser un Dictionary
, et sur le plan conceptuel. nettoyeur aussi (que vous n'avez pas vraiment voulez mapper les clés aux valeurs)
(Comme toujours, je suggérerais de trouver la solution la plus lisible en premier, et de la comparer - si c'est "assez rapide", alors allez-y. Si vous voulez utiliser ceci dans le cadre d'une autre requête, alors Distinct
pourrait bien être le moyen le plus lisible. Sinon, je suggérerais HashSet
.)