私は a の繰り返しに本当に問題があり、list<list<object>>
誰かに洞察を求めたいと思います。
ご覧のlist<list<object>> posCheckOptions
とおり、32 個のリストを含む があり、各リストには x 個のオブジェクトが含まれています。つまり、0 の場合は 348、1 の場合は 325 などです。
たとえば、この 348 個のリストには、削除したい要素が重複しています。つまり、株の名前が同じである可能性があるので、VODAFONE と 4 回言うと、Vodafone が最初に発見されたときにそれぞれの株数を追加し、重複を削除したいと思います。
for(int k = 0; k<posCheckOptions.Count; k++)
{
int l = 0;
int m = 1;
while (l != m)
{
foreach(var x in posCheckOptions[k][l].name)
{
if(posCheckOptions[k][l].date != posCheckOptions[k][m].date
&& posCheckOptions[k][l].strike != posCheckOptions[k][m].strike
&& posCheckOptions[k][l].callPut != posCheckOptions[k][m].callPut)
{
m++;
}
else
{
posCheckOptions[k][l].size = posCheckOptions[k][l].size + posheckOptions[k][m].size;
posCheckOptions[k].RemoveAt(m);
m--;
}
}
l++; m = l;
}
}
私がコード化しようとしているのは、少なくともアイデアは、posCheckOptions[0][0] から開始し、要素posCheckOptions[0][0].date
をposCheckOptions[0][1].date
(4 つのフィールドを比較する)と比較することです (poscheckOptions
型 T が 76 個の変数を持つクラスであるリストです)。比較したものが等しくない場合 (つまり、重複していない場合) インデックスを上のレベルに移動し、次のレベルに進みます。移動中に重複する要素が見つかった場合は、追加と削除を行い、インデックスを 1 つ戻して開始します。私が最後までたどり着くまで。
私は事実と混同しています.jで2つのインデックスを実行する必要があるかどうかはわかりませんposCheckOptions[0][j]
。インデックスmが348要素すべてをループしたと言うと、jはj + 1にしか移動しないためです。2を削除すると、これは348ではないかもしれません....
どんなアドバイスでも大歓迎です:-)