我在迭代 a 时遇到了一个真正的问题list<list<object>>
,并且想请教任何人的见解。
如您所见,我有一个list<list<object>> posCheckOptions
包含 32 个列表的列表,每个列表包含 x 个对象,即 348 表示 0,325 表示 1 等。
例如,在这个 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 个变量的类)。如果我比较的不相等(即不重复,我将索引向上移动并继续到下一个,依此类推。在我的旅行中,如果我发现一个重复的元素,我会进行添加和删除,将索引移回一个并开始直到我到达终点。
我对这个事实感到困惑,我不确定我是否需要在 j 中运行 2 个索引,posCheckOptions[0][j]
因为一旦说索引 m 循环了所有 348 个元素,j 只会进入 j+1。如果我删除 2,这可能不是 348....
任何建议都非常受欢迎:-)