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!欢迎交流!
  • 相关阅读:
    原型设计
    简单APP——ToDoList的二次开发(日期规范化+构建搜索栏)
    Java基本语言篇
    C++中各种常用转换汇总学习
    语言篇swift
    洛谷P2384 最短路,积化加
    洛谷P4568 分层图最短路
    【洛谷P1962】矩阵快速幂求Fibonacii数列
    vue-cli教程
    单页应用原理
  • 原文地址:https://www.cnblogs.com/mahaisong/p/2406246.html
Copyright © 2011-2022 走看看