程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> 使用C#去掉10萬級數組中重復的數據

使用C#去掉10萬級數組中重復的數據

編輯:C#入門知識

測試數據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;
        }

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved