日期:2014-05-18  浏览次数:20954 次

List<string> 有什么快速得方法去除重复项?
都是手机号码
数据100w+
去除重复写到文本去
小弟是新手

------解决方案--------------------
哇,重大任务。建立弄到数据库中去搞排序,然后用数据库剔除。这是一次性工作,没必要还写一段程序。

先把号码导入到数据库中,然后直接使用distinct关键字select数据。,
------解决方案--------------------
跟排序差不多的原理.冒泡,二分之类。
差别在于排序是判断大小关系,现在楼主是需要判断是否相等.
------解决方案--------------------
可以用非泛型的hashtable或泛型的Dictionary<key,value>来进行筛选,
------解决方案--------------------
你的List<String>数据是数据库中来的么? 如果是这样,直接在Sql文里面处理掉,消除重复项 

------解决方案--------------------
DATAVIEW里面有个方法可以去除,具体那个是忘了,先把数据取出来放到DATASET里面
------解决方案--------------------
linq 到时很好实现
 List<string> list = new List<string>();
list.Add("a");
list.Add("a");
list.Add("b");
list.Add("b");
var c = (from li in list
select li).Distinct();


foreach (var d in c)
{
Console.WriteLine("The word {0} is shorter than its value.", c);
}
不过是3.0到东西
没有的话只能
先sort在一个个都删除了


------解决方案--------------------
探讨
哇,重大任务。建立弄到数据库中去搞排序,然后用数据库剔除。这是一次性工作,没必要还写一段程序。

先把号码导入到数据库中,然后直接使用distinct关键字select数据。,

------解决方案--------------------
用linq就很快了
------解决方案--------------------
用hashtable,手机号码作为key,每条记录作为value,可以去掉重复项,但是,那么多记录会不会造成内存紧张甚至系统崩溃呢?偶是菜鸟,还望指教。
------解决方案--------------------
数据库中弄吧。
------解决方案--------------------
从性能,效率,等各个方面来说 
顶1楼的方法
呵呵...

------解决方案--------------------
直接写,边写边把数据插入一个hashtable,同时比较,发现有相同的就不写那一条。

------解决方案--------------------
“直接写,边写边把数据插入一个hashtable,同时比较,发现有相同的就不写那一条”太慢了把,有可能? 

一次性全写进去。
然后一次性全处理掉,重复的。
先把号码导入到数据库中,然后直接使用distinct关键字select数据。,
------解决方案--------------------
数据库 or linq
------解决方案--------------------
用sqlserver吧。linq也快不了。
------解决方案--------------------
一般数据量上万就考虑分页取出,你的数据上百万了还全取出来,再删除重复的.
这样在性能上看不到什么好的效果
------解决方案--------------------
用数据库吧..
------解决方案--------------------
既然不需要重复的,为什么一开始没选择用dictionary?
------解决方案--------------------
数据库端处理.
------解决方案--------------------
填充到数据库里,让数据库帮你排序,排除重复。
当然也可以自己写,就是慢点。。
------解决方案--------------------
用hashtable,手机号码作为key,每条记录作为value,可以去掉重复项,但是,那么多记录会不会造成内存紧张甚至系统崩溃呢?偶是菜鸟,还望指教。

 正解