C#删除数组重复项概括分析

来源:岁月联盟 编辑:zhu 时间:2009-09-23

学习C#数组时,经常会遇到数组中的重复项问题,这里将介绍问题的解决方法——C#删除数组重复项。

C#删除数组重复项

使用C#查找数据中重复数据,C#删除数组重复项的解决方法。个人感觉,如果在数组不是很大的情况下,用正则替换还是最快的。原理就是先排序,再用正则替换重复。当然泛型+foreach是最好的选择,第二种方法很是不错,代码简洁,只是泛型的应用,如果再FOREACH就更好。

第一种方法:

  1. public static String[] RemoveDup(String[] myData)  
  2. {  
  3. if (myData.Length > 0)  
  4. {  
  5. Array.Sort(myData); //先对数组进行排序  
  6. int size = 1; //定义删除重复项后的数组长度  
  7. for (int i=1; i <myData.Length; i++)  
  8. if (myData != myData[i-1])  
  9. size++;  
  10. String[] myTempData = new String[size];  
  11. int j=0;  
  12.  
  13. myTempData[j++] = myData[0];  
  14.  
  15. for (int i=1; i <myData.Length; i++)   
  16. //遍历数组成员  
  17. if (myData != myData[i-1])   
  18. //如果相邻的两个不相等则放入新数组  
  19. myTempData[j++] = myData;  
  20.  
  21. return myTempData;  
  22. }  
  23.  
  24. return myData;  
  25. }  

第二种方法:

  1. public static string[] GetString(string[] values)  
  2. {  
  3. List<string> list = new List<string>();  
  4. for (int i = 0; i < values.Length; i++)//遍历数组成员  
  5. {  
  6. if (list.IndexOf(values[i].ToLower()) == -1)  
  7. //对每个成员做一次新数组查询如果没有相等的则加到新数组  
  8. list.Add(values[i]);  
  9. }  
  10. return list.ToArray();  
  11. }