В настоящее время я использую собственный класс, полученный из 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
.
Edit
Для чего мне это нужно? clusters
представляет собой набор кластеров некоторого набора документов. Документы сгруппированы в кластеры по сходству тем. Таким образом, одним из последних шагов алгоритма является обнаружение метки для каждого кластера. Но алгоритм не совершенен, и иногда он создает два или более кластера с одной и той же меткой. Я хочу просто слить этот кластер в большой.