Выберите элемент по индексу из .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
это набор кластеров некоторой коллекции документов. Документы сгруппированы в кластеры по сходству тем. Поэтому одним из последних шагов алгоритма является обнаружение метки для каждого кластера. Но алгоритм не идеален, и иногда он создает два или более кластеров с одинаковой меткой. Что я хочу сделать, это просто объединить эти кластеры в один большой.