zoukankan      html  css  js  c++  java
  • (井底之蛙)惭愧丢人的两段代码希望以后多多长进,警醒自己

    井底之蛙

    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楼 2012-03-19 22:20 vons      

    代码的变量和结构太乱了,是不是想在cookiesArray中保存所有不等于GoodsNo的项?

    var list = new List<Common.Other.Cookies>();
    for (int i=0; i <cartJson.Cookies.Length;i++ )
    {
    if (cartJson.Cookies[i].GoodsNo != GoodsNo)
    list.Add(cartJson.Cookies[i]);
    }
    return list.ToArray();
     回复 引用 查看 删除  

    #3楼 2012-03-20 02:43 青砖绿树      

    你这代码写得够绕的。。。
    要是在我的团队,这样的情况出现3次,打包回家找妈
    取出不等于GoodsNo的项
    var list = cartJson.Cookies.ToList()
    .Select(c=>c.GoodsNo != GoodsNo)
    .ToList();
     回复 引用 查看 删除  

    #4楼 2012-03-20 02:44 青砖绿树      

    var list = cartJson.Cookies.ToList()
    .Where(c=>c.GoodsNo != GoodsNo);
     回复 引用 查看 删除  

    #5楼 2012-03-20 04:48 B.Zhou      

    LZ代码的意思是,排除不等于GoodsNo的第一项
    楼上几位看的太不仔细了!

    不过LZ的代码写的太不专业了,有逻辑错误,有发生异常的可能性
    1.cookiesArray[i - 1] = cookies1;
    应该改成:cookiesArray[i] = cookies1;这是逻辑错误
    i-1:如果当i为0时就匹配成功isDel=true,index启不是-1?有异常可能性

    2.楼主以后不要把这样的文章放首页。
     回复 引用 查看 删除  

    #6楼[楼主] 2012-03-20 09:13 沐海      

    @vons
    谢啦。小弟实在太惭愧了。这段代码留着给我这个井底之蛙。
    查看 删除  修改

    #7楼[楼主] 2012-03-20 09:13 沐海      

    @青砖绿树
    谢啦。小弟实在太惭愧了。这段代码留着给我这个井底之蛙。
    查看 删除  修改

    #8楼[楼主] 2012-03-20 09:15 沐海      

    @B.Zhou
    楼上几位老大的意思是对的。是我的代码写的不好,让你误会了。

    但是您指出的“index启不是-1?有异常可能性”也是我的错误。
    查看 删除  修改

    好好打基础。认真学基础。别再朝三暮四了。

    本人声明: 个人主页:沐海(http://www.cnblogs.com/mahaisong) 以上文章都是经过本人设计实践和阅读其他文档得出。如果需要探讨或指教可以留言或加我QQ!欢迎交流!
  • 相关阅读:
    Java实现 蓝桥杯 算法提高 小X的购物计划
    Java实现 蓝桥杯 算法提高 小X的购物计划
    Java实现 第十一届 蓝桥杯 (高职专科组)省内模拟赛
    Java实现 第十一届 蓝桥杯 (高职专科组)省内模拟赛
    Java实现 第十一届 蓝桥杯 (高职专科组)省内模拟赛
    Java 第十一届 蓝桥杯 省模拟赛 小明的城堡
    Java 第十一届 蓝桥杯 省模拟赛 小明的城堡
    Java 第十一届 蓝桥杯 省模拟赛 小明的城堡
    129. Sum Root to Leaf Numbers
    117. Populating Next Right Pointers in Each Node II
  • 原文地址:https://www.cnblogs.com/mahaisong/p/2406246.html
Copyright © 2011-2022 走看看