【急切求助】如何查找文本文件的重复行?

jscn123789abc 2009-03-12 01:24:08
/////////////////////////////
【急切求助】如何查找文本文件的重复行?
大家好啊,向大家请教个问题:如何查找文本文件的重复行,并显示第一次出现的行数及内容?
/////////////////////////////
先说下我的思路:
(1)把文本文件按行插入一个链表,每行看作一个字符串元素,并加上行号前缀;
(2)从链表第一个元素开始,跟后面的元素比较,有重复的,就把后面重复的元素删除(用来提高效率),并把第一个元素(追加)写入另一个文本文件;若没有重复,则从第二个元素开始进行比较;
(3)直到进行比较的其实元素为链表结尾元素时,退出循环;
/////////////////////////////
a.txt内容(源文件)
abc
abc
def
abc
def
kkkk
/////////////////////////////
b.txt内容(目的文件)
1 abc
3 def
/////////////////////////////
...全文
719 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
jscn123789abc 2009-03-15
  • 打赏
  • 举报
回复
谢谢楼上朋友的回复....
vbman2003 2009-03-12
  • 打赏
  • 举报
回复
大概如下:



string[] arr={"abc","efg","abc","efg"};
Dictionary<string,int> dic=new Dictionary<string,int>();
foreach (string v in arr)
{
if (!dic.ContainsKey(v)) dic.Add(v, 0);
}
foreach (KeyValuePair<string , int> v in dic)
{
Console.WriteLine(v.Key.ToString());
}

cppfaq 2009-03-12
  • 打赏
  • 举报
回复
文件如果比较小的话就全部读出来好了,然后随便你用List,Hashtable,Dictionary折腾都行。
如果文件大,那么可以采用其他思路,比如:巧妙的利用批处理"md"+"dir"删除文本重复行
http://www.heycoffee.com/article.asp?id=320
vbman2003 2009-03-12
  • 打赏
  • 举报
回复
用Dictionary
jinjazz 2009-03-12
  • 打赏
  • 举报
回复
一行一行放到list当中,然后用contains方法判断
MOTA 2009-03-12
  • 打赏
  • 举报
回复
全部读出来
然后穷举


写完 我发现我好傻...
liudanking 2009-03-12
  • 打赏
  • 举报
回复
我觉得你可以用readline实现。

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧