利用LINQ读行文本&去重复
1 static private void GetOneText(string filePath)
2 {
3 using (StreamReader sr = new StreamReader(filePath,Encoding.GetEncoding("gb2312")))
4 {
5 List<string> listQuery = new List<string>();
6 for(string line=sr.ReadLine();line!=null;line=sr.ReadLine())
7 {
8 if (!string.IsNullOrEmpty(line))
9 listQuery.Add(line);
10 }
11 var query = listQuery.Distinct();
12 string newfilePath = @"d:\2.txt";
13 using (FileStream fs = new FileStream(newfilePath, FileMode.Create))
14 using (TextWriter tw = new StreamWriter(fs))
15 {
16 foreach(var ary in query)
17 {
18 tw.WriteLine(ary.ToString());
19 }
20 }
21 }
22 }
23 static void Main(string[] args)
24 {
25 string filePath = @"d:\1.txt";
26 GetOneText(filePath);
27 }
2 {
3 using (StreamReader sr = new StreamReader(filePath,Encoding.GetEncoding("gb2312")))
4 {
5 List<string> listQuery = new List<string>();
6 for(string line=sr.ReadLine();line!=null;line=sr.ReadLine())
7 {
8 if (!string.IsNullOrEmpty(line))
9 listQuery.Add(line);
10 }
11 var query = listQuery.Distinct();
12 string newfilePath = @"d:\2.txt";
13 using (FileStream fs = new FileStream(newfilePath, FileMode.Create))
14 using (TextWriter tw = new StreamWriter(fs))
15 {
16 foreach(var ary in query)
17 {
18 tw.WriteLine(ary.ToString());
19 }
20 }
21 }
22 }
23 static void Main(string[] args)
24 {
25 string filePath = @"d:\1.txt";
26 GetOneText(filePath);
27 }
以前也遇到类似问题,是用System.IO+正则完成的~这个是Linq版本的 记录一下
Encoding.GetEncoding("gb2312")这个主要是防止读取中文时乱码用的。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现