Выберите элемент по индексу из .NET HashSet

На данный момент я использую пользовательский класс, полученный изHashSet, В коде есть точка, когда я выбираю элементы при определенных условиях:

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

Он отлично работает, и я получаю эти элементы. Но есть ли способ получить индекс этого элемента в коллекции для использования сElementAt метод, а не целые объекты?

Это будет выглядеть примерно так:

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

Является ли ручной перебор всей коллекции лучшим способом? Я должен добавить, что это в большей петле, так что этоWhere предложение выполняется несколько раз для разныхsomeLabel строки.

редактировать

Для чего мне это нужно?clusters это набор кластеров некоторой коллекции документов. Документы сгруппированы в кластеры по сходству тем. Поэтому одним из последних шагов алгоритма является обнаружение метки для каждого кластера. Но алгоритм не идеален, и иногда он создает два или более кластеров с одинаковой меткой. Что я хочу сделать, это просто объединить эти кластеры в один большой.

Ответы на вопрос(1)

Ваш ответ на вопрос