积极答复者
求救一个关于排重的问题

问题
-
我写了一个windows窗体程序,可以通过这个程序在指定的某个文件夹下创建*.txt(*代表任何名称的txt文件.例如 test.txt)
在这些txt文件夹中写入文本.比如 网址,名称等
txt中的书写格式
www.baidu.com 名称百度
www.sina.com.cn 名称新浪但是如果输入时间长了,有可能会产生重复内容,请问我该用什么方式进行写入前的排重功能.
答案
-
一个办法是可以在先把所有信息强类型化,然后自定义 Serialize 写入 TXT 文件。这样就可以通过 C# 的多种方法,如 Linq to Object,或者 List 来检查重复了。
比如要添加一堆 URL,可以把这些 URL 变成名称-值对,放到 Dictionary 里面,Dictionary 会自动检查重复的键,如果存在了,再次插入就会抛异常。然后,用 foreach 把所有名称-值存进 TXT 即可。
Mark Zhou- 已标记为答案 mldarkModerator 2010年6月13日 15:11
-
你好!
如果你必须使用txt文件的话,没有什么太好的办法了,只能把文件内容读取出来,然后用正则表达式匹配,如果匹配成功就证明有重复!
txt文件的确不适合这个任务!XML更方便一些!mazhou的方法本质上也是XML序列化或二进制序列化(txt文件已经无法阅读了,我想你的需求并不希望如此)
周雪峰- 已标记为答案 mldarkModerator 2010年6月13日 15:11
全部回复
-
一个办法是可以在先把所有信息强类型化,然后自定义 Serialize 写入 TXT 文件。这样就可以通过 C# 的多种方法,如 Linq to Object,或者 List 来检查重复了。
比如要添加一堆 URL,可以把这些 URL 变成名称-值对,放到 Dictionary 里面,Dictionary 会自动检查重复的键,如果存在了,再次插入就会抛异常。然后,用 foreach 把所有名称-值存进 TXT 即可。
Mark Zhou- 已标记为答案 mldarkModerator 2010年6月13日 15:11
-
你好!
如果你必须使用txt文件的话,没有什么太好的办法了,只能把文件内容读取出来,然后用正则表达式匹配,如果匹配成功就证明有重复!
txt文件的确不适合这个任务!XML更方便一些!mazhou的方法本质上也是XML序列化或二进制序列化(txt文件已经无法阅读了,我想你的需求并不希望如此)
周雪峰- 已标记为答案 mldarkModerator 2010年6月13日 15:11