井底之蛙
2012-04-10 20:50 今天又来看看这个代码。错误地方有很几处。这个代码主要是因为不熟悉.NET中数组和LIST之间的转换。
目的:想排除所有不等项。然后再赋值给原对象。
先说说第二个。第二个就是一个错啊。特别是第二个FOR循环。简直把自己的脸丢完了。
第一个也是个错。啥都不说了。丢死人了。
最后写法。参考以上留言的各位。
var list=new List<Common.Other.Cookies>();
foreach (Common.Other.Cookies cookiesTemp in cartJson.Cookies)
{
if(cookiesTemp.GoodsNo!=GoodsNo)//删除相等的。
{
list.Add(cookiesTemp);
}
}
cartJson.Cookies=list.ToArray();
//各位各位。实在是一点点泡沫把我吹的不知道自己是谁了。惭愧啊惭愧啊。
最惭愧的。虽然立即就把代码改成上面那样,但是直到今天,我才从心里真正明白自己那一点点经验就自大的心态。
感谢各位的点醒。这篇错误代码要永远留着。
int i = 0; bool isDel = false;
foreach (Common.Other.Cookies cookies1 in cartJson.Cookies)
{
if (isDel)
{
cookiesArray[i - 1] = cookies1;
}
else
{
if (cookies1.GoodsNo == GoodsNo)
{
isDel = true;
continue;
}
cookiesArray[i] = cookies1;
}
i++;
}
//int i = 0;
//foreach (Common.Other.Cookies cookies1 in cartJson.Cookies)
//{
// if (cookies1.GoodsNo == GoodsNo)// 这种写法如果排在前面别上面优化,排在后面比上面劣势,况且(2N+1)和(N+1)之间还是N+1比较省。
// {
// break;
// }
// cookiesArray[i] = cookies1;
// i++;
//}
//for (int j = i; j <cartJson.Cookies.Length;j++ )
//{
// cookiesArray[j] = cartJson.Cookies[j+1];
//}
#2楼
删除
#3楼
删除
#4楼
删除
#5楼
删除
#6楼
修改
#7楼
修改
#8楼
修改
好好打基础。认真学基础。别再朝三暮四了。