【ITOO】---对ViewModel进行去重操作



    下拉框显示的是从数据库查到的所有的数据,所以数据一旦多久可能造成下面图片的这种情况------有重复数据!
【ITOO】---对ViewModel进行去重操作_第1张图片

    那么咱们首先想到的肯定是去重啦!如何去重呢?这么简单的问题,却查了很长时间没有查到,可以说自己头脑中一点思路都没有!看来我还是代码敲的少啊!请师哥来帮忙写,最终成功了。自己决定一定要记下来去重的思路,等再次遇到这个情况的时候就不会抓瞎了!

下面就是我对去重代码的一些理解,写成了注释,供大家借鉴:
这是对页面实体进行去重的代码:需要去重的页面实体就是 classView:
                List<ClassViewModel> classView = studentService.QueryClassNumByMajor(DepartmentName);
                //需要对集合进行去重             
                #region 需要对集合进行去重 李少然 2016-1-25 14:36:29
                //定义一个空集合
                List<ClassViewModel> NewClassView = new List<ClassViewModel>();
                bool IsContain = false; //定义一个标签,false表示新集合和旧集合没有重复的数据
                foreach (ClassViewModel oldStudent in classView)//开始循环查出的学生集合
                {
                    //1、判断是否重复,先假设新集合中没有和旧集合重复的
                    IsContain = false;
                    foreach (ClassViewModel NewStudent in NewClassView)//开始循环新的学生集合
                    {
                        if (NewStudent.ClassCode == oldStudent.ClassCode)//如果新的集合中的值和旧的值是一样的,就标记为true
                        {
                            IsContain = true;
                            break;
                        }
                    }
 
                    //2、对标记进行处理
                    if (false == IsContain)
                    {
                        NewClassView.Add(oldStudent);//把选出的学生添加到新集合中
                    }
                }
                #endregion


    这样的话就可以实现去重了,其实思路非常简单,就是定义一个空的集合,先循环要去重的集合,再嵌套一个循环,对空集合进行循环,如果没有重复的就加入空集合中!第一次循环,空集合没有值,要去重的集合中的第一条数据直接放到空集合中,然后就可以进行第二次循环了!以此类推!道理明白了,代码就很好写了!

      一点一滴的积累,相信自己也会和师哥一样:能够快速准确的写出代码!

你可能感兴趣的:(【ITOO】---对ViewModel进行去重操作)