Sélectionnez un élément par index dans un HashSet .NET

En ce moment je suis en utilisant un custom classe dérivée de HashSet. Il y a un point dans le code lorsque je sélectionne les éléments sous certaine condition:

var c = clusters.Where(x => x.Label != null && x.Label.Equals(someLabel));

Il fonctionne très bien et je reçois ces éléments. Mais est-il une manière que je pourrais recevoir un index de l'élément à l'intérieur de la collection, à utiliser avec ElementAt méthode, au lieu de l'ensemble des objets?

Il aurait l'air plus ou moins comme ceci:

var c = select element index in collection under certain condition;
int index = c.ElementAt(0); //get first index
clusters.ElementAt(index).RunObjectMthod();

Est manuellement une itération sur l'ensemble de la collection, une meilleure façon? - Je besoin d'ajouter que c'est dans une plus grande boucle, de sorte que cette Where clause est effectuée plusieurs fois pour diverses someLabel chaînes.

Modifier

Ce que j'en ai besoin pour? clusters est un ensemble de clusters de certains documents de la collection. Les Documents sont regroupés en clusters par les sujets de la similitude. Ainsi, l'une des dernière étape de l'algorithme est de découvrir une étiquette pour chaque cluster. Mais l'algorithme n'est pas parfait et parfois, il fait deux ou plus de deux groupes avec la même étiquette. Ce que je veux faire est tout simplement de fusionner des armes en grand.

source d'informationauteur Ventus