欢迎来到 IT实训基地-南通科迅教育
咨询电话:0513-81107100
使用C#去掉10万级数组中重复的数据
2017/2/14
科迅教育
487
南通Web前端培训机构哪家好?-软件开发培训 - 软件开发课程费用

测试数据1万条

第一种算法(4分钟)

 

[csharp]
///

  
        /// List泛型去重  
        ///  
        ///由一维数组组成的泛型  
        ///要去除重复的项  
         private void RemoveRepeaterUrl(ref List list,int ItemID) 
         { 
             for (int i = 0; i < list.Count; i++) 
             { 
                 for (int j = (i + 1); j < list.Count; j++) 
                 { 
                     if (list[j][ItemID] == list[i][ItemID]) 
                     { 
                         list.RemoveAt(j);//去除相同的项  
                         i = 0;//从新开始去重,如果数组内有大量重复的项,仅一次去重不能解决问题。这样的用法会使效率慢1/3  
                         j = 0; 
                     } 
                 } 
             } 
         } 

 

///


        /// List泛型去重
        ///
        ///由一维数组组成的泛型
        ///要去除重复的项
         private void RemoveRepeaterUrl(ref List list,int ItemID)
         {
             for (int i = 0; i < list.Count; i++)
             {
                 for (int j = (i + 1); j < list.Count; j++)
                 {
                     if (list[j][ItemID] == list[i][ItemID])
                     {
                         list.RemoveAt(j);//去除相同的项
                         i = 0;//从新开始去重,如果数组内有大量重复的项,仅一次去重不能解决问题。这样的用法会使效率慢1/3
                         j = 0;
                     }
                 }
             }
         }

 


第二种算法(4S)

[csharp]
//去除重复的数据, 返回list  
 
//利用类库中的hashtable类的containsKeys方法判断hashtable中是否存在这个数据,要是不存在就  
 
//把数据添加到新的List中,最后清空hashtable  
 
public List getUnque(List list) 

    List list1 = new List(); 
    Hashtable hash = new Hashtable(); 
    foreach (string stu in list) 
    { 
        string[] kk1 = stu.Split(new string[] { "--" }, StringSplitOptions.RemoveEmptyEntries); 
        string comword = kk1.Length==3 ? kk1[2]:""; 
        if (!hash.ContainsKey(comword)) 
        { 
            hash.Add(comword, comword); 
            list1.Add(stu); 
        } 
    } 
    hash.Clear(); 
    hash = null; 
    return list1; 

        //去除重复的数据, 返回list

        //利用类库中的hashtable类的containsKeys方法判断hashtable中是否存在这个数据,要是不存在就

        //把数据添加到新的List中,最后清空hashtable

        public List getUnque(List list)
        {
            List list1 = new List();
            Hashtable hash = new Hashtable();
            foreach (string stu in list)
            {
                string[] kk1 = stu.Split(new string[] { "--" }, StringSplitOptions.RemoveEmptyEntries);
                string comword = kk1.Length==3 ? kk1[2]:"";
                if (!hash.ContainsKey(comword))
                {
                    hash.Add(comword, comword);
                    list1.Add(stu);
                }
            }
            hash.Clear();
            hash = null;
            return list1;
        }

77
关闭
先学习,后交费申请表
每期5位名额
在线咨询
免费电话
QQ联系
先学习,后交费
TOP
您好,您想咨询哪门课程呢?
关于我们
机构简介
官方资讯
地理位置
联系我们
0513-91107100
周一至周六     8:30-21:00
微信扫我送教程
手机端访问
南通科迅教育信息咨询有限公司     苏ICP备15009282号     联系地址:江苏省南通市人民中路23-6号新亚大厦三楼             法律顾问:江苏瑞慈律师事务所     Copyright 2008-