現在、から派生したカスタムクラスを使用してい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つは、各クラスターのラベルを検出することです。ただし、アルゴリズムは完全ではなく、同じラベルを持つ2つ以上のクラスターを作成する場合があります。私がやりたいのは、それらのクラスターを大きなクラスターにマージすることです。