第一种:

string[] stringArray = { "aaa", "bbb", "aaa", "ccc", "bbb", "ddd", "ccc", "aaa", "bbb", "ddd" };
//List用于存储从数组里取出来的不相同的元素
List<string> listString =new List<string>();
foreach (string eachString in stringArray)
{
if (!listString.Contains(eachString))
listString.Add(eachString);
}
//最后从List里取出各个字符串进行操作
foreach (string eachString in listString)
{
Console.Write(eachString); //打印每个字符串
}

原理应该比较容易理解吧,通过遍历原数组中的每一个元素,将元素添加到新的泛型listString中,如果listString已经包含了就不添加,当遍历完原数组,泛型中保存的就是去重后的结果了。

在数据量小的时候用这个算法还OK,但如果数据量比较大时(我工作中需要将5万以上左右的数据去重)其效率就不是那么让人接受了,一次处理需要耗费近1分钟左右的时间(测试电脑用的Inter Pentium D 2.8GHz、1G内存)

由于需求对结果的元素序列没有任何要求,我采取了下列算法来提高效率

第二种:

string[] stringArray = {...因为是从文件读取的,这里省略了...}
List<string> listString =new List<string>();
Array.Sort(stringArray );//排序数组
int MaxLine = stringArray.Length;
#region 单独计算第一个
if (sourceData[0] != stringArray[1])
{
listString.Add(stringArray[0]);
}
#endregion
for (int i =1; i < MaxLine; i++)
{
if (sourceData[i] != stringArray[i-1])
{
listString.Add(stringArray[i]);
}
}

思路是:首先对数组进行排序,这样相同的数组就排列在了一起。然后遍历原数组,一次取出当前元素和上一个元素,如果2个元素相等就跳过,不相等就将其元素的保存到泛型listString中。(第一次运行的时候,前一个元素为空,所以把第一个元素单独拿出来处理)

最新文章

  1. web存储
  2. linux-bash shell学习
  3. appserv中php升级问题
  4. Ajax本地跨域问题 Cross origin requests are only supported for HTTP
  5. 环回接口(loopback interface)的新认识
  6. 内部通信服务Factory(WCF)
  7. Oracle 给已创建的表增加自增长列
  8. [nginx]Nginx禁止访问robots.txt防泄漏web目录
  9. Java I/O学习(附实例和详解)
  10. Mingyang.net:为什么不将Bean定义在Action参数中?
  11. OC 加密
  12. 解决pip安装时 UnicodeDecodeError 问题
  13. jQuery常用方法集锦
  14. Group by Grouping
  15. Python之re模块(结合具体业务)
  16. 使用脚本删除hive分区中的问题(expecting KW_EXCHANGE near mytable in alter exchange partition)
  17. HDU 1584(蜘蛛牌 DFS)
  18. 《Java从入门到精通》学习总结2
  19. js设计模式(五)---观察者模式
  20. vue组件之间数据的传递

热门文章

  1. ViewBag &amp; ViewData
  2. node 学习资料
  3. neutron通信原理理解
  4. python2核心类库:urllib、urllib2的区别和使用
  5. 【转】类似py2exe软件真的能保护python源码吗
  6. ALGO-27_蓝桥杯_算法训练_FBI树(树,递归)
  7. 【Mysql】事务日志-Write Ahead logging vs command-logging(转)
  8. 【IntelliJ 】IntelliJ IDEA 2017激活码
  9. QT中实现应用程序的单例化
  10. bzoj2909: Bipartite Numbers