0

c# の List<> には、100 などのオブジェクト数が含まれています。繰り返しなしで、連続していくつかのオブジェクトを選択する必要があります。たとえば、オブジェクト 4 を選択し、その後、ランダムな数の連続したオブジェクト (オブジェクト 5 と 6) をランダムに選択します。別のコレクションを選択したい場合、オブジェクト 4、5、および 6 を含むべきではありません。これらのオブジェクトをリストから削除すると、役に立たないオブジェクト 2、3、7、8 を受け取ることがあります。言い換えれば、オブジェクトが繰り返されず、メインリストと同じ順序で、メインリストからいくつかのサブリストが必要です。誰かがこのアルゴリズムを解決するのを手伝ってくれるかどうか疑問に思っていました.

4

1 に答える 1

2

オブジェクトをディクショナリに保存できるため、各オブジェクトの追加情報を保持できます。この場合、オブジェクトが選択されているかどうかを示すブール値です。

//initializing the dictionary, any item has been selecte
Dictionary<object,bool> dic = list.ToDictionary(e => e, e => false);

アイテムを選択するたびに、ブール値を true に変更します。

dic[selectedObject] = true;

辞書から新しい項目を選択しようとすると、値を持つキーと値のペアをスキップするだけで済みtrueます。

于 2013-01-29T16:52:21.443 に答える